
支付宝扫一扫付款

微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
Caution
如果你的程序是基于Symfony 2.x版本,在执行本文中的命令行时,把 php bin/console
替换为 php app/console
。
generate:bundle
生成全新的bundle结构,并在程序中自动激活。
默认时,此命令运行在互动模式下,询问问题以决定bundle名称,位置,配置格式以及默认结构等:
若要取消互动模式,使用 --no-interaction 选项,但不要忘了传入全部所需之选项:
1 | $ php bin/console generate:bundle --namespace=Acme/Bundle/BlogBundle --no-interaction |
Caution
如果 generate:bundle
命令返回了一个关于在 composer.json
中注册bundle命名空间的错误,添加下列代码行到你的 composer.json
文件中的 psr-4
区段下:
"Acme\\Bundle\\BlogBundle\\": "src/Acme/Bundle/BlogBundle"
(例如:
1 2 3 4 5 6 | "autoload": {
"psr-4": {
"Acme\\Bundle\\BlogBundle\\": "src/Acme/Bundle/BlogBundle"
},
"classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
}, |
),然后执行下面的命令来生成自动加载文件:
1 | $ composer dump-autoload |
--shared
namespace
待创建budnle的命名空间。它应以“vendor”名起头,比如你的公司名,或是项目名,乃至你的客户端名等,跟上一个或多个可选的类别子命名空间,最终结束于bundle名称本身 (必须以Bundle为后缀):
1 | $ php bin/console generate:bundle --namespace=Acme/Bundle/BlogBundle |
--bundle-name
可选的bundle名称。它必须以 Bundle
后缀结尾:
1 | $ php bin/console generate:bundle --bundle-name=AcmeBlogBundle |
--dir
存放bundle的目录。根据约定,命令行会侦测并使用程序的 src/
文件夹:
1 | $ php bin/console generate:bundle --dir=/var/www/myproject/src |
--format
允许值: annotation|php|yml|xml
默认值: annotation
决定用于“所生成的配置文件”中的配置格式 (比如路由配置)。默认时,命令行使用 annotation
格式 (选择 annotation
格式时,预期的是 SensioFrameworkExtraBundle已经安装在程序中 ):
1 | $ php bin/console generate:bundle --format=annotation |
本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。