Yii Aliases
The package aim is to store path aliases, i.e. short name representing a long path (a file path, a URL, etc.).
Path alias value may have another value as its part. For example, @vendor may store path to vendor directory
while @bin may store @vendor/bin.
General usage
A path alias must start with the character '@' so that it can be easily differentiated from non-alias paths.
use Yiisoft\Aliases\Aliases;
$aliases = new Aliases([
'@root' => __DIR__,
]);
$aliases->set('@vendor', '@root/vendor');
$aliases->set('@bin', '@vendor/bin');
echo $aliases->get('@bin/phpunit');The code about would output "/path/to/vendor/bit/phpunit".
Note that set() method does not check if the given path exists or not. All it does is to associate the alias with
the path.
The path could be:
- a directory or a file path (e.g.
/tmp,/tmp/main.txt) - a URL (e.g.
http://www.yiiframework.com) - a path alias (e.g.
@yii/base). It will be resolved on {@see get()} call.
Any trailing / and \ characters in the given path will be trimmed.
Alias priorities
In case multiple aliases are registered with same root (prefix), then the most specific has precedence:
use Yiisoft\Aliases\Aliases;
$aliases = new Aliases([
'@vendor' => __DIR__ . '/vendor',
'@vendor/test' => '/special/location'
]);
echo $aliases->get('@vendor/test');That would output /special/location since @vendor/test is more specific match than @vendor.
Alias removal
If you need to remove alias runtime:
use Yiisoft\Aliases\Aliases;
$aliases = new Aliases([
'@root' => __DIR__,
]);
$aliases->remove('@root');Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunitMutation testing
The package tests are checked with Infection mutation framework. To run it:
./vendor/bin/infectionStatic analysis
The code is statically analyzed with Phan. To run static analysis:
./vendor/bin/phan


