liberty_code / route

v1.0.1 2022-01-02 22:10 UTC

This package is auto-updated.

Last update: 2024-09-29 04:43:20 UTC


README

描述

该库包含路由组件,用于使用路由系统从指定源运行可执行文件。

要求

  • 脚本语言:PHP:版本 7 或 8

安装

有几种可能的方式

Composer

  1. 要求

    需要安装 Composer。更多信息请参阅: https://getcomposer.org.cn

  2. 命令:移动到项目根路径

     cd "<project_root_path>"
    
  3. 命令:安装

     php composer.phar require liberty_code/route ["<version>"]
    
  4. 注意

    • 包含供应商

      如果项目使用 Composer,则必须包含 vendor

        require_once('<project_root_path>/vendor/autoload.php');
      
    • 配置

      安装命令允许在 composer 文件中添加

        {
            "require": {
                "liberty_code/route": "<version>"
            }
        }
      

包含

  1. 下载

    • 下载以下存储库。
    • 将其放在存储库根路径上。
  2. 包含源代码

     require_once('<repository_root_path>/include/Include.php');
    

配置

主要配置

  • 使用以下类来配置特定元素

      use liberty_code\route\config\model\DefaultConfig;
      DefaultConfig::instanceGetDefault()->get|set...();
    
  • 可配置元素

    • 正则表达式选项,用于路由
    • 参数选项,用于路由
    • 全局信息

使用方法

路由

路由系统允许从特定配置和指定源获取可执行文件。

元素

  • 路由

    允许设计一个路由,该路由是一个包含配置数组的项,用于从指定字符串源获取可执行文件(回调函数)。

  • PatternRoute

    扩展路由功能。在配置数组中使用正则表达式。

  • ParamRoute

    扩展路由功能。在配置数组中使用带有参数的源。

  • FixRoute

    扩展路由功能。在配置数组中使用固定配置。

  • SeparatorRoute

    扩展路由功能。在配置数组中使用分隔符配置。

  • RouteCollection

    允许设计路由集合。使用路由列表,从指定路由或字符串源检索可执行文件。

  • RouteFactory

    允许设计一个路由工厂,从指定配置提供新的或指定的路由实例。

  • DiRouteFactory

    扩展路由工厂功能。从指定的 DI 提供者提供新的路由实例。

  • StandardRouteFactory

    扩展 DI 路由工厂功能。提供路由实例。

示例

// Get route factory
use liberty_code\route\route\factory\standard\model\StandardRouteFactory;
$routeFactory = new StandardRouteFactory($provider);
...
// Get new route from configuration
$route = $routeFactory->getObjRoute(array(...));
...

构建器

构建器允许用路由填充路由集合。

元素

  • DefaultBuilder

    使用源数据数组来填充路由集合。

示例

// Get route collection
use liberty_code\route\route\model\DefaultRouteCollection;
$routeCollection = new DefaultRouteCollection();
...
// Get route builder
use liberty_code\route\build\model\DefaultBuilder;
$routeBuilder = new DefaultBuilder($routeFactory);
...
// Hydrate route collection
$routeBuilder->setTabDataSrc(array(...));
$routeBuilder->hydrateRouteCollection($routeCollection);
...
foreach($routeCollection->getTabKey() as $key) {
    echo($routeCollection->getObjRoute($key)->getStrKey() .'<br />');
}
/**
 * Show: 
 * Route key 1
 * ...
 * Route key N
 */
...

路由器

路由器允许使用路由集合运行可执行文件(回调函数)。

示例

use liberty_code\route\router\model\DefaultRouter;
$router = new DefaultRouter();
$router->setRouteCollection(...);
...
// Run executable(s), from specified string source
var_dump($router->execute(...));
...

调用

使用路由系统调用,以获取回调函数以执行特定路由目标。

元素

  • DefaultCall

    扩展调用功能。使用路由器获取可执行文件以执行特定目标。

  • RouteCall

    扩展默认路由调用功能。允许配置路由目标。

  • RouteCallFactory

    扩展调用工厂功能。提供路由调用实例。