liberty_code / autoload
v1.0.0
2021-12-29 17:49 UTC
Requires
- php: ~7 || ~8
- liberty_code/di: ^1.0.
- liberty_code/library: ^1.0.
This package is auto-updated.
Last update: 2024-09-29 04:43:20 UTC
README
描述
库包含自动加载组件,允许使用规则系统自动管理文件包含。
要求
- 脚本语言:PHP:版本 7 或 8
安装
有几种可能的安装方式
Composer
要求
它需要安装 composer。更多信息请访问:https://getcomposer.org.cn
命令:移动到项目根路径
cd "<project_root_path>"
命令:安装
php composer.phar require liberty_code/autoload ["<version>"]
注意
包含 vendor
如果项目使用 composer,必须包含 vendor
require_once('<project_root_path>/vendor/autoload.php');
配置
安装命令允许在 composer 文件中添加
{ "require": { "liberty_code/autoload": "<version>" } }
包含
下载
- 下载以下存储库。
- 将其放在存储库根路径。
包含源代码
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();
...