本书未发布

安装路由

未匹配的标注

路由选择

FastRoute

安装

composer require nikic/fast-route

测试路由 (如果你懂 不用继续看下面了)

编辑index.php

<?php


//引入composer自动加载
require __DIR__.'/vendor/autoload.php';

$dispatcher = FastRoute\simpleDispatcher(function(FastRoute\RouteCollector $r) {
    $r->get('/users','UserController@getUser'); //添加路由
});



// Fetch method and URI from somewhere
$httpMethod = $_SERVER['REQUEST_METHOD'];
$uri = $_SERVER['REQUEST_URI'];

// Strip query string (?foo=bar) and decode URI
if (false !== $pos = strpos($uri, '?')) {
    $uri = substr($uri, 0, $pos);
}
$uri = rawurldecode($uri);

$routeInfo = $dispatcher->dispatch($httpMethod, $uri);
switch ($routeInfo[0]) {
    case FastRoute\Dispatcher::NOT_FOUND:  //找不到路由
        // ... 404 Not Found
        break;
    case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
        $allowedMethods = $routeInfo[1];   //请求不同
        // ... 405 Method Not Allowed
        break;
    case FastRoute\Dispatcher::FOUND:  //找到路由
        $handler = $routeInfo[1];
        $vars = $routeInfo[2];
        var_dump($routeInfo);
        // ... call $handler with $vars
        break;
}

启动php内置服务器

 php -S 0.0.0.0:12345

加载路由

浏览器访问

  http://127.0.0.1:12345/users

var_dump($routeInfo) 的结果

加载路由

$routeInfo[0] 不知道
$routeInfo[1] 自定义的处理操作
$routeInfo[2] 参数 如/users/{id}, 参数是这个{id}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~