Symfony文档说,要启用注释,应该运行以下命令。
$ composer require annotations
使用此命令启用注释的幕后实际操作是什么?
这让我很困惑,因为通常我会使用之类的东西
composer require foo/baz
安装foo/baz
程序包——但annotations
不是程序包——或者至少在我看来不像程序包。程序包通常有namespace/packagename
结构,annotations
是一个单词。
此外,我在运行该命令之前和之后,将composer.json文件和onyl不同的apepars区分为在sensio/framework-extra-bundle
上碰撞次要版本号——(这根本不重要,因为^5.1
SemVer翻译为5.latestst——对吧?)
$ diff composer.json composer.json.orig
8c8
< "sensio/framework-extra-bundle": "^5.2",
---
> "sensio/framework-extra-bundle": "^5.1",
那么这个composer require annotations
实际上是如何工作的呢?它做了哪些更改来启用路由注释呢?
"annotations"是Symfony Recipe的别名。
转到Symfony食谱网站:https://flex.symfony.com/并搜索"注释"。您可能会发现两个包,您感兴趣的是第二个:sensio/framework extra bundle
当您运行composer require annotations
时,composer会安装程序包(与执行composer require sensio/framework-extra-bundle
时完全相同,或者如果您已经拥有它,则会更新它),并且它还运行与其关联的配方(取决于您的版本,它在这里:https://github.com/symfony/recipes/tree/master/sensio/framework-extra-bundle)
这个配方实际上是将一堆文件复制到你的工作目录中,这样配置就可以自动完成,你就不必麻烦了。一些配方添加了一个新的控制台命令、添加配置文件或二进制。。。它相当强大。
所有这些更改都会写入相对的新symfony.lock
配置文件中,您可以在其中找到已运行的带有一些信息的配方。
注意:如果使用VCS ,则应该提交
symfony.lock
文件