當前位置: 首頁>>代碼示例>>PHP>>正文


PHP uri::params方法代碼示例

本文整理匯總了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);
    }
開發者ID:noikiy,項目名稱:YAMini,代碼行數:63,代碼來源:core.php


注:本文中的uri::params方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。