liberty_code/autoload

v1.0.0 2021-12-29 17:49 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/autoload ["<version>"]
    
  4. 注意

    • 包含 vendor

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

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

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

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

包含

  1. 下载

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

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

配置

主要配置

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

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

    • 正则表达式选项,用于规则中
    • 全局信息

用法

规则

规则系统允许从指定的源检索文件路径。

元素

  • 规则

    允许设计一个规则,该规则是一个包含配置数组的项

    • 从指定的字符串源进行检查匹配。
    • 从指定的字符串源获取文件路径。
  • PatternRule

    扩展规则功能。在配置数组中使用正则表达式来检查匹配和从指定的字符串源获取文件路径。

  • RuleCollection

    允许设计规则集合。使用规则列表。

    • 从指定的字符串源进行检查匹配。
    • 从指定的字符串源获取文件路径。
  • RuleFactory

    允许设计一个规则工厂,从指定的配置中提供新的或特定的规则实例。

  • StandardRuleFactory

    扩展规则工厂功能。提供规则实例。

示例

// Get rule factory
use liberty_code\autoload\rule\factory\standard\model\StandardRuleFactory;
$ruleFactory = new StandardRuleFactory();
...
// Get new rule from configuration
$rule = $ruleFactory->getObjRule(array(...));
...

Builder

Builder 允许从指定的数据源填充规则集合。

元素

  • DefaultBuilder

    使用源数据数组来填充规则集合。

示例

// Get rule collection
use liberty_code\autoload\rule\model\DefaultRuleCollection;
$ruleCollection = new DefaultRuleCollection();
...
// Get rule builder
use liberty_code\autoload\build\model\DefaultBuilder;
$ruleBuilder = new DefaultBuilder($ruleFactory);
...
// Hydrate rule collection
$ruleBuilder->setTabDataSrc(array(...));
$ruleBuilder->hydrateRuleCollection($ruleCollection);
...
foreach($ruleCollection->getTabKey() as $key) {
    echo($ruleCollection->getObjRule($key)->getStrKey() . '<br />');
}
/**
 * Show: 
 * Rule key 1
 * ...
 * Rule key N
 */
...

Loader

Loader 允许使用规则集合注册自动加载函数。

示例

use liberty_code\autoload\load\model\Loader;
$loader = Loader::instanceGetDefault();
$loader->setObjRuleCollection($ruleCollection);
...
// Autoload registering
$loader->registerSet();
...