composer 如何解析 `dumpautoload` 命令?
How does composer resolve the `dumpautoload` command?
使用 Composer version 1.8.6 2019-06-11 15:03:05
dumpautoload
命令适用于以下所有变体
composer dump-autoload
composer dumpautoload
composer dumpautoloa
composer dumpautolo
composer dumpautol
composer dumpauto
composer dumpaut
composer dumpau
composer dumpa
composer dump
composer dum
composer du
直到 composer d
抛出
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "d" is ambiguous (depends, dump-autoload and 1 more).
命令是如何解析的?我知道 dumpautoload
在 composer source here
中被设置为 dump-autoload
的别名
class DumpAutoloadCommand extends BaseCommand
{
protected function configure()
{
$this->setName('dump-autoload')->setAliases(array('dumpautoload'))
和setAliases
中的composer/RootPackage.php
source here只给private $aliases;
属性
分配别名
public function setAliases(array $aliases)
{
$this->aliases = $aliases;
}
但是其他变体是如何解决的?
Composer 基于 symfony/console
构建,搜索命令的代码位于 Symfony\Component\Console\Application::find
,可在 https://github.com/symfony/console/blob/master/Application.php#L596 找到。基本上,所有注册的命令都会被检查到最短的、清晰可辨的长度——所以 similar_text
的方法已经太复杂了 ;)
使用 Composer version 1.8.6 2019-06-11 15:03:05
dumpautoload
命令适用于以下所有变体
composer dump-autoload
composer dumpautoload
composer dumpautoloa
composer dumpautolo
composer dumpautol
composer dumpauto
composer dumpaut
composer dumpau
composer dumpa
composer dump
composer dum
composer du
直到 composer d
抛出
[Symfony\Component\Console\Exception\CommandNotFoundException]
Command "d" is ambiguous (depends, dump-autoload and 1 more).
命令是如何解析的?我知道 dumpautoload
在 composer source here
dump-autoload
的别名
class DumpAutoloadCommand extends BaseCommand
{
protected function configure()
{
$this->setName('dump-autoload')->setAliases(array('dumpautoload'))
和setAliases
中的composer/RootPackage.php
source here只给private $aliases;
属性
public function setAliases(array $aliases)
{
$this->aliases = $aliases;
}
但是其他变体是如何解决的?
Composer 基于 symfony/console
构建,搜索命令的代码位于 Symfony\Component\Console\Application::find
,可在 https://github.com/symfony/console/blob/master/Application.php#L596 找到。基本上,所有注册的命令都会被检查到最短的、清晰可辨的长度——所以 similar_text
的方法已经太复杂了 ;)