yiisoft/aliases

命名路径和URL存储

3.0.0 2023-02-13 10:14 UTC

This package is auto-updated.

Last update: 2024-09-16 19:44:28 UTC


README

Yii

Yii Aliases


Latest Stable Version Total Downloads Build Status Scrutinizer Code Quality Code Coverage Mutation testing badge static analysis type-coverage

该包的目的是存储路径别名,即表示长路径的短名称(文件路径、URL等)。路径别名值可以作为其部分值。例如,@vendor 可能存储到 vendor 目录的路径,而 @bin 可能存储 @vendor/bin

需求

  • PHP 7.4 或更高版本。

安装

可以使用 Composer 安装此包。

composer require yiisoft/aliases

通用用法

路径别名必须以字符 '@' 开头,这样就可以轻松区分别名路径和非别名路径。

use Yiisoft\Aliases\Aliases;

$aliases = new Aliases([
    '@root' => __DIR__,
]);
$aliases->set('@vendor', '@root/vendor');
$aliases->set('@bin', '@vendor/bin');

echo $aliases->get('@bin/phpunit');

以下代码将输出 "/path/to/vendor/bin/phpunit"。

请注意,set() 方法不会检查给定路径是否存在。它所做的只是将别名与路径关联起来。

路径可以是

  • 一个目录或文件路径(例如 /tmp/tmp/main.txt
  • 一个URL(例如 https://yiiframework.cn
  • 一个路径别名(例如 @yii/base)。它将在调用 {@see get()} 时解析。

给定路径中的任何尾部 /\ 字符都将被删除。

要批量将路径别名转换为实际路径,请使用 getArray() 方法

$aliases = new Aliases([
    '@root' => '/my/app',
]);

// Value will be ['src' => '/my/app/src', 'tests' => '/my/app/tests']
$directories = $aliases->getAll(['src' => '@root/src', 'tests' => '@root/tests']);

别名优先级

如果注册了具有相同根(前缀)的多个别名,则最具体的一个具有优先级

use Yiisoft\Aliases\Aliases;

$aliases = new Aliases([
    '@vendor' => __DIR__ . '/vendor',
    '@vendor/test' => '/special/location'    
]);
echo $aliases->get('@vendor/test');

这将输出 /special/location,因为 @vendor/test@vendor 是更具体的匹配。

别名移除

如果您需要移除运行时别名

use Yiisoft\Aliases\Aliases;

$aliases = new Aliases([
    '@root' => __DIR__,
]);
$aliases->remove('@root');

文档

如果您需要帮助或有问题,Yii 论坛 是一个不错的选择。您还可以查看其他 Yii 社区资源

许可证

Yii Aliases 是免费软件。它根据 BSD 许可证的条款发布。有关更多信息,请参阅 LICENSE

Yii 软件 维护。

支持项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack