当您进入 Symfony 项目(例如使用
composer create-project symfony/skeleton:"7.0.*" .
创建)并运行 composer require webapp
时,它将安装 symfony/webapp-pack
。
当只给出字符串
symfony/webapp-pack
时,composer 如何找到包名称webapp
?
Symfony 使用他们自己的 Composer 插件,称为 Flex。它与
require
进程挂钩。
\Symfony\Flex\PackageResolver::resolvePackageName()
来电:
\Symfony\Flex\Downloader::getAliases()
,HTTP 命中:
https://raw.githubusercontent.com/symfony/recipes/flex/main/index.json
其中包含 Symfony 特定作曲家别名的 JSON 编码列表:
"web-server": "symfony/web-server-bundle",
"web-server-bundle": "symfony/web-server-bundle",
"webapp": "symfony/webapp-pack",
"webhook": "symfony/webhook",
"weblink": "symfony/web-link",
注意这不仅限于 Symfony 包。例如,还在该文件中:
"alice": "hautelook/alice-bundle",
所以,你可以这样做:
composer require alice