yzmcms/route

这是一个最小的PHP路由。

维护者

详细信息

github.com/yzmcms/route

源代码

问题

安装: 14

依赖: 0

建议者: 0

安全: 0

星标: 2

关注者: 1

分支: 2

开放问题: 0

类型:项目

v1.1.1 2019-07-03 11:01 UTC

This package is auto-updated.

Last update: 2024-09-29 05:02:38 UTC


README

安装

如果您有Composer,只需在您的 composer.json 中将route作为一个项目依赖项包含。如果没有,只需下载.ZIP文件并将其解压缩到您的项目目录中。

require: {
    "yzmcms/route": "*"
}

示例

首先,使用 路由命名空间

use yzmcms\route\route;

route不是一个对象,因此您可以直接对类进行操作。以下是一个Hello World示例

route::get('/', function() {
  echo 'Hello world!';
});

route::exec();

route也支持lambda URI,例如

route::get('/(:any)', function($slug) {
  echo 'The slug is: ' . $slug;
});

route::exec();

您也可以在route中对HTTP方法进行请求,因此您也可以这样做

route::get('/', function() {
  echo 'I'm a GET request!';
});

route::post('/', function() {
  echo 'I'm a POST request!';
});

route::any('/', function() {
  echo 'I can be both a GET and a POST request!';
});

route::exec();

示例:将请求传递到控制器而不是闭包

将命名空间路径传递给控制器而不是闭包是可能的

对于这个演示,假设我有一个名为controllers的文件夹,其中有一个demo.php文件

index.php

require('vendor/autoload.php');

use yzmcms\route\route;

route::get('/', 'Controllers\demo@index');
route::get('page', 'Controllers\demo@page');
route::get('view/(:num)', 'Controllers\demo@view');

route::exec();

demo.php

<?php
namespace controllers;

class Demo {

    public function index()
    {
        echo 'home';
    }

    public function page()
    {
        echo 'page';
    }

    public function view($id)
    {
        echo $id;
    }

}

这是通过composer安装route的。

composer.json

{
   "require": {
        "yzmcms/route": "*"
    },
    "autoload": {
        "psr-4": {
            "" : ""
        }
    }
}