davidantonyan1981
Новичок
PHP:
class System_Controller{
protected static $_url;
protected static $_controller;
protected static $_action;
protected static $_arg = array();
public static function getUrl()
{
/*
* site.loc/controller/action/arg1/arg2/arg3/.../.../
* $url[0] = controller
* $url[1] = action
* $url[2,3,4,5.....n] = arg1,arg2,arg3....
*/
Controller::$_url = !isset($_GET['url']) ? 'index/index' : $_GET['url'];
Controller::$_url = explode('/', rtrim(Controller::$_url , '/'));
// print_r(Route::$_url);
}
public static function setClsController()
{
/**/
Controller::$_controller = Controller::$_url[0];
// print_r(Route::$_controller);
}
public static function setAction()
{
/**/
Controller::$_action = !isset(Controller::$_url[1]) ? 'index' : Controller::$_url[1];
// print_r(Route::$_action);
}
public static function setArg()
{
/**/
if(count(Controller::$_url > 2))
{
for ($i = 2; $i < count(Controller::$_url); $i++)
{
Controller::$_arg[] = Controller::$_url[$i];
}
}
}
public static function setController()
{
Controller::getUrl();
Controller::setClsController();
Controller::setAction();
Controller::setArg();
$controller = 'Controller_'. ucfirst(Controller::$_controller);
$action = 'action_'. Controller::$_action;
if(class_exists($controller) and method_exists($controller, $action))
{
$cls = new $controller;
$cls->$action(Controller::$_arg);
}
else
{
die('error 404 file not found');
}
}
}