当前位置: 首页>>代码示例>>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;未经允许,请勿转载。