Symfony Flex 食谱如何知道要安装哪些包?

How do Symfony Flex recipes know what packages to install?

我想了解 Symfony 食谱如何知道要安装哪些包。

阅读源代码,在我看来,当我 运行

composer require twig

作曲家,将 flex 作为插件,

  1. 寻找名为 twig
  2. 的别名
  3. 看到它已为食谱注册 symfony/twig-pack
  4. 下载食谱并阅读其 manifest.json
  5. 执行 manifest.json 中定义的所有操作,例如创建额外的文件或将内容附加到文件

但是我在 manifest.json 中没有看到安装 实际包 symfony/twig-pack.

是否只是暗示 所有 食谱 与他们正在安装的包共享他们的名字,这就是如何作曲家知道要安装什么包吗?

即开发人员不能只创建一个配方 invented_company/nonexisting_package 只是在这里添加几个文件并在那里附加几行,但实际上并不对应于 packagist 上的包?

有配方创建说明

它说

Recipes must be stored on their own repositories, outside of your Composer package repository. They must follow the vendor/package/version/ directory structure, where version is the minimum version supported by the recipe.

https://github.com/symfony/recipes/blob/master/README.rst