PHP中的TreeRoute问题?

时间:2018-02-10 22:08:56

标签: php routing

我在&#34中有一个问题;我这样做了吗?",让我解释一下..我在项目中包含了TreeRoute,示例中没有包含如何调用附加到路由的处理程序

我别无选择,只能自己实施这部分,我继续尝试,然后遇到了问题。我所拥有的只是该文件的命名空间。现在,1个选项只是将文件位置放在路径而不是命名空间中,但我认为这不是一个好的编程实践。

我已经使用过Laravel这样的框架,你只需要放置一个命名空间,它包含了适合你的类,我已经尝试过这样做,但我所拥有的只是命名空间,我想我的问题是我如何通过其命名空间包含一个类,但是我再次这样做了吗?这感觉是错误和肮脏的,如果有人能帮助清除这个混乱,那将是非常欣赏的

routes.php文件:

<?php declare(strict_types = 1);

$router = new \TreeRoute\Router();

$router->addRoute(['GET', 'POST'], '/', ['Phantom\Controllers\Frontend\Guest\LoginController', 'getView']);

bootstrap.php中:

require 'routes.php';

$method = $_SERVER['REQUEST_METHOD'];
$url = $_SERVER['REQUEST_URI'];

$result = $router->dispatch($method, $url);

if (!isset($result['error'])) {
    $handler = $result['handler'];

    $class = $handler[0];
    include $class . '.php';
    $class = new $class;

    $method = $handler[1];

    $class->$method();
} 
else {
    switch ($result['error']['code']) {
        case 404 :
            echo 'Not found handler here...';
            break;
        case 405 :
            $allowedMethods = $result['allowed'];
            if ($method == 'OPTIONS') {
                echo 'OPTIONS method handler here...';
            }
            else {
                echo 'Method not allowed handler here...';
            }
            break;
    }
}

0 个答案:

没有答案