本文整理匯總了PHP中uri::params方法的典型用法代碼示例。如果您正苦於以下問題:PHP uri::params方法的具體用法?PHP uri::params怎麽用?PHP uri::params使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類uri
的用法示例。
在下文中一共展示了uri::params方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: process
private function process($router)
{
extract($router);
if (!is_callable($handler)) {
if (is_string($handler)) {
$params = array_filter(explode('/', $handler));
} else {
$params = uri::params();
}
$directory_name = array_shift($params);
$directory_real = rtrim(CONTROLLER_PATH.$directory_name.DIRECTORY_SEPARATOR,'/').DIRECTORY_SEPARATOR;
if (!is_dir($directory_real)) {
array_unshift($params, $directory_name);
$directory_name = null;
$directory_real = CONTROLLER_PATH;
}
switch (count($params)) {
case 0:
array_push($params, DEFAULT_CONTROLLER,DEFAULT_METHOD);
break;
case 1:
array_push($params, DEFAULT_METHOD);
break;
default:
$params_chunked = array_chunk($params, 2, false);
$params = array_shift($params_chunked);
break;
}
$class_name = ucwords(array_shift($params));
if (!file_exists($directory_real.$class_name.PHP_EXT)) {
throw new \Exception("Page Not Found", 404);
}
$class_real = str_replace(DIRECTORY_SEPARATOR, '\\', str_replace(APP_PATH, '', $directory_real.$class_name));
$controller = $class_real::get_instance();
self::$controller = $controller;
$method_name = array_shift($params);
if (is_callable([$controller, $method_name])){
$processor = [$controller, $method_name];
} else {
throw new \Exception("Page Not Found", 404);
}
} else {
$processor = $router['handler'];
}
$args = uri::params(3);
if(preg_match('/'.$router['pattern'].'/i', uri::request_uri(), $matches )) {
if(count($matches) >= 2) {
$request_uri_end = array_pop($matches);
$args = array_filter(explode('/', $request_uri_end));
}
}
call_user_func_array($processor,$args);
}