| 
<?php
/* Class name       : Url
 * Inherited from   :
 * Created by       : Junaid Hassan (email : [email protected] , blog : junaidhassanalvi.wordpress.com)
 * Created On       : 15-April-2103
 * Description      : To handle all operations regarding recieved URL request
 *
 * Change Logs      :
 *
 */
 class Url {
 
 var $controller, $action, $controller_path, $qParams, $request, $controller_class, $controller_action;
 
 protected $catalog;
 
 function __construct($catalog) {
 $this->catalog = $catalog;
 }
 
 // jha-- parse recieved URL to route the request to appropriate controller and action
 //jha-- explode url in an array to form request array
 //jha-- check if controller is provided, if not, take it from configuration
 //jha-- check if action is provided, if not, take it from configuration
 //jha-- check if required controller and action is present, if not, die
 //jha-- push controller and action name from request array to create parameter list for action's function
 public function parse_current() {
 
 global $utilities;
 
 $config = $this->catalog->get('config');
 
 $qs = isset($_GET['qs']) ? $_GET['qs'] : '';
 $this->request = $qs;
 $this->qParams = explode('/', $qs);
 
 if (!@$utilities->isNullOrEmpty($this->qParams[0])) {
 $this->controller = $this->qParams[0];
 } else {
 $this->controller = $config->default->controller;
 }
 
 if (!@$utilities->isNullOrEmpty($this->qParams[1])) {
 $this->action = $this->qParams[1];
 } else {
 $this->action = $config->default->action;
 }
 
 $this->controller_path = $config->base_path . '/' . $config->paths->controllers . '/' . $this->controller . '.php';
 
 $this->controller_class = $this->controller . 'Controller';
 $this->controller_action = $this->action . 'Action';
 
 if (file_exists($this->controller_path)) {
 require($this->controller_path);
 if (class_exists($this->controller_class)) {
 $obj = new $this->controller_class($this->catalog);
 if (method_exists($obj, $this->controller_action)) {
 
 } else {
 die('Required action is not found');
 }
 } else {
 die('Required controller is not found');
 }
 } else {
 die('Required controller is not found');
 }
 
 if (is_array($this->qParams))
 if (count($this->qParams) > 0)
 array_shift($this->qParams);
 
 if (is_array($this->qParams))
 if (count($this->qParams) > 0)
 array_shift($this->qParams);
 }
 
 }
 ?>
 
 
 
 |