cleaned project, repaired router
This commit is contained in:
parent
2156d3f5c6
commit
bffe0f1660
16 changed files with 1172 additions and 1440 deletions
|
|
@ -1,136 +1,102 @@
|
|||
<?php
|
||||
/**
|
||||
* Controller Router
|
||||
* Specific routing entity
|
||||
*
|
||||
* @author Karl Pannek <info@katharsis.in>
|
||||
* @version 0.5.2
|
||||
* @package Katharsis
|
||||
*/
|
||||
class Katharsis_ControllerRouting
|
||||
{
|
||||
/**
|
||||
* @var Katharsis_ControllerRouting
|
||||
*/
|
||||
protected static $_instance = null;
|
||||
|
||||
/**
|
||||
* Singleton. Returns the same instance every time
|
||||
*
|
||||
* @return Katharsis_ControllerRouting
|
||||
*/
|
||||
public static function getInstance()
|
||||
{
|
||||
if(self::$_instance === null)
|
||||
{
|
||||
self::$_instance = new self();
|
||||
}
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets default controller and action names
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function __construct()
|
||||
{
|
||||
Katharsis_Request::setControllerName('index');
|
||||
Katharsis_Request::setActionName('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Initiates routing process
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function init()
|
||||
{
|
||||
$paramstring = "";
|
||||
$baseUrl = preg_replace('#(.*/)[^/]+#', '\1', $_SERVER['SCRIPT_NAME']);
|
||||
|
||||
if(preg_match("~.*" . $baseUrl . "([^/\?]+)/([^/\?]+)/*([^\?]*)~", $_SERVER['REQUEST_URI'], $matches))
|
||||
{
|
||||
$controller = $matches[1];
|
||||
$action = $matches[2];
|
||||
$paramstring = $matches[3];
|
||||
$params = $this->_buildParams($paramstring);
|
||||
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
Katharsis_Request::setActionName($action);
|
||||
} else if(preg_match("~.*" . $baseUrl . "([^/\?]+)/*([^\?]*)~", $_SERVER['REQUEST_URI'], $matches))
|
||||
{
|
||||
$controller = $matches[1];
|
||||
$paramstring = $matches[2];
|
||||
$params = $this->_buildParams($paramstring);
|
||||
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
} else
|
||||
{
|
||||
if(array_key_exists('controller', $_GET))
|
||||
{
|
||||
$controller = $_GET['controller'];
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
}
|
||||
|
||||
if(array_key_exists('action', $_GET))
|
||||
{
|
||||
$action = $_GET['action'];
|
||||
Katharsis_Request::setActionName($action);
|
||||
}
|
||||
|
||||
$params = $_GET;
|
||||
}
|
||||
|
||||
Katharsis_Request::setParams($params);
|
||||
|
||||
Katharsis_View::getInstance()->requestHook();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Routing processing method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function route()
|
||||
{
|
||||
$controllerName = ucfirst(Katharsis_Request::getControllerName()) . 'Controller';
|
||||
$action = Katharsis_Request::getActionName() . 'Action';
|
||||
|
||||
if(class_exists($controllerName))
|
||||
{
|
||||
$controllerObject = new $controllerName();
|
||||
|
||||
$controllerObject->$action();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Splits parameters to an array and returns them
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _buildParams($string)
|
||||
{
|
||||
$params = array();
|
||||
if(trim($string) !== '')
|
||||
{
|
||||
$urlparams = explode("/", $string);
|
||||
|
||||
for($i = 0; $i < count($urlparams); $i=$i+2)
|
||||
{
|
||||
if(array_key_exists($i+1, $urlparams))
|
||||
{
|
||||
$params[$urlparams[$i]] = $urlparams[$i+1];
|
||||
} else
|
||||
{
|
||||
$params[$urlparams[$i]] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
<?php
|
||||
class Katharsis_ControllerRouting
|
||||
{
|
||||
protected static $_instance = null;
|
||||
|
||||
public static function getInstance()
|
||||
{
|
||||
if(self::$_instance === null)
|
||||
{
|
||||
self::$_instance = new self();
|
||||
}
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
protected function __construct()
|
||||
{
|
||||
Katharsis_Request::setControllerName('index');
|
||||
Katharsis_Request::setActionName('index');
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
$paramstring = "";
|
||||
$baseUrl = preg_replace('#(.*/)[^/]+#', '\1', $_SERVER['SCRIPT_NAME']);
|
||||
|
||||
if(preg_match("~/([^/\?]+)/([^/\?]+)/*([^\?]*)~", $_SERVER['REQUEST_URI'], $matches))
|
||||
{
|
||||
$controller = $matches[1];
|
||||
$action = $matches[2];
|
||||
$paramstring = $matches[3];
|
||||
$params = $this->_buildParams($paramstring);
|
||||
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
Katharsis_Request::setActionName($action);
|
||||
}
|
||||
else if(preg_match("~/([^/\?]+)/*([^\?]*)~", $_SERVER['REQUEST_URI'], $matches))
|
||||
{
|
||||
$controller = $matches[1];
|
||||
$paramstring = $matches[2];
|
||||
$params = $this->_buildParams($paramstring);
|
||||
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(array_key_exists('controller', $_GET))
|
||||
{
|
||||
$controller = $_GET['controller'];
|
||||
Katharsis_Request::setControllerName($controller);
|
||||
}
|
||||
|
||||
if(array_key_exists('action', $_GET))
|
||||
{
|
||||
$action = $_GET['action'];
|
||||
Katharsis_Request::setActionName($action);
|
||||
}
|
||||
|
||||
$params = $_GET;
|
||||
}
|
||||
|
||||
Katharsis_Request::setParams($params);
|
||||
|
||||
Katharsis_View::getInstance()->requestHook();
|
||||
}
|
||||
|
||||
public function route()
|
||||
{
|
||||
$controllerName = ucfirst(Katharsis_Request::getControllerName()) . 'Controller';
|
||||
$action = Katharsis_Request::getActionName() . 'Action';
|
||||
|
||||
if(class_exists($controllerName))
|
||||
{
|
||||
$controllerObject = new $controllerName();
|
||||
|
||||
$controllerObject->$action();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected function _buildParams($string)
|
||||
{
|
||||
$params = array();
|
||||
if(trim($string) !== '')
|
||||
{
|
||||
$urlparams = explode("/", $string);
|
||||
|
||||
for($i = 0; $i < count($urlparams); $i=$i+2)
|
||||
{
|
||||
if(array_key_exists($i+1, $urlparams))
|
||||
{
|
||||
$params[$urlparams[$i]] = $urlparams[$i+1];
|
||||
} else
|
||||
{
|
||||
$params[$urlparams[$i]] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $params;
|
||||
}
|
||||
}
|
||||
?>
|
||||
Loading…
Add table
Add a link
Reference in a new issue