生成一个全新的Bundle骨架

3.0 版本
维护中的版本

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

创建bundle时,若要将其共享于你的若干个程序之中,或者你开发的是一个第三方bundle,则提供此选项。若你开发的是于程序中孤立使用的bundle,不要设置此选项。

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 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)