cherry-project / router
Cherry-project 路由器
v1.1.0
2019-05-04 15:23 UTC
Requires
- php: >=5.6.0
- ext-json: *
- cherry-project/request: 1.0.1
This package is auto-updated.
Last update: 2024-09-05 03:22:59 UTC
README
Cherry-project 路由器
包括
使用 composer 安装 composer require cherry-project/router
在主文件中包含自动加载器(例如:index.php)
require_once __DIR__ . '/vendor/autoload.php';
定义应用程序根目录
define('__ROOT__', __DIR__);
在您的应用程序中,您必须有一个 config.json 文件来存储应用程序配置设置,并且您必须定义其位置
define('CONFIG_FILE', __DIR__ . '/config/config.json');
config.json 必须包含指向 routes.json 和控制器目录的路径
{ "ROUTES_FILE": "config/routes.json", "CONTROLLERS_PATH": "controllers" }
获取应用程序配置参数并定义它
$config = file_get_contents(CONFIG_FILE) or die("Unable to open config file!"); $config = json_decode($config, 1); foreach ($config as $k => $v) define($k, __DIR__ . '/' . $v);
注意:此方法将在新版本中替换:))
是时候配置路由文件了
路由文件是一个 JSON 文件,其中对象键是路由的唯一名称。
每个路由必须具有 path、method 和 action 键。主页路由示例
{ "homepage": { "path": "/", "method": "GET", "action": "DefaultController::index" } }
路由文件基本结构
{ "[RouteName]": { "path": "[URL]", "method": "[HTTP_Method]", "action": "[Controller]::[Method]" } }
路由键定义
- [RouteName] - 路由唯一名称;
- path - 路由 URL。(例如:对于地址 http://www.example.com/homepage [URL] 是 homepage);
- method - 路由 HTTP 方法。允许所有 HTTP 方法;
- action - 路由回调操作。操作的第一部分(在 :: 之前)是您的控制器(存储在 CONTROLLERS_PATH 中)。控制器是一个简单的 PHP 类,其中 [Controller] 是类名(类名和类文件名必须具有相同的名称(例如:[Controller].php))。操作键的第二部分(在 :: 之后)是控制器(类)的公共方法;
您的路由路径可以使用 占位符。占位符是路由模板。
带有占位符的路由示例
{ "homepage": { "path": "/hello/{name}", "method": "GET", "action": "DefaultController::sayHello" } }
这里有一个名为 {name} 的占位符,我们可以在控制器中获取此值
public function sayHello($name) { echo "Hello, {$name}"; }
2019 © Cherry-project