Cherry-project 路由器

v1.1.0 2019-05-04 15:23 UTC

This package is auto-updated.

Last update: 2024-09-05 03:22:59 UTC


README

Cherry-project 路由器

GitHub license

GitHub release

Packagist Version

包括

使用 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 文件,其中对象键是路由的唯一名称。

每个路由必须具有 pathmethodaction 键。主页路由示例

{
  "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