捆绑系统
捆绑系统¶
警告
在4.ob娱乐下载0之前的Symfony版本中,建议使用捆绑包组织您自己的应用程序代码。这不再推荐,并且捆绑包应仅用于在多个应用程序之间共享代码和功能。
捆绑包类似于其他软件中的插件,但更好。Symfony框架的核心功能是用捆绑包(Fob娱乐下载rameworkBundle,SecurityBundle,DebugBundle等)实现它们,它们也用于在应用程序中添加新功能第三方捆绑。
必须每次启用应用程序中使用的捆绑包环境在里面配置/ bundles.php.
文件:
// config / bundles.php返回[//'全部'表示捆绑包已启用任何Symfony环境ob娱乐下载ob娱乐下载symfony \ bundle \ frameworkbundle \ frameworkbundle::班级=>['全部'=>真的],ob娱乐下载symfony \ bundle \ securityBundle \ SecurityBundle::班级=>['全部'=>真的],ob娱乐下载symfony \ bundle \ twigbundle \ twigbundle::班级=>['全部'=>真的],ob娱乐下载symfony \ bundle \ monologbundle \ monologbundle::班级=>['全部'=>真的],ob娱乐下载symfony \ bundle \ swiftmailerbundle \ swiftmailerbundle::班级=>['全部'=>真的],教义\ bundle \ doctrinebundle \ doctrinebundle::班级=>['全部'=>真的],sensio \ bundle \ frameworkextrabundle \ sensioframeworkextrabundle::班级=>['全部'=>真的],//只有在'dev'和'test'中仅启用此包,因此您无法在'prod'中使用它ob娱乐下载symfony \ bundle \ webprofilerbundle \ webprofilerbundle::班级=>['dev'=>真的那'测试'=>真的],];
小费
在使用的默认symfonyob娱乐下载应用程序中ob娱乐下载Symfony Flex.如果安装/删除它们时,捆绑包会自动启用/禁用,因此您不需要查看或编辑此bundles.php.
文件。
创建捆绑包¶
本节创建并启用新捆绑包以显示只需要几步。新捆绑包被称为AcmetestBundle,其中acme.
部分是一个例子名称,应该由代表您或您的组织的一些“供应商”名称(例如,某些公司名称的AbctestBundle替换ABC
)。
首先创建一个src / acme / testbundle /
目录并添加一个名为新文件AcmetestBundle.php.
:
// src / acme / testbundle / acmetestbundle.php命名空间app \ acme \ testbundle;用ob娱乐下载symfony \ component \ httpkernel \ bundle \ bundle;班级AcmetestBundle.延伸捆{}
小费
AcmetestBundle的名称遵循标准捆绑命名约定。您也可以选择缩短捆绑包的名称,以便通过命名此类TestBundle来测试(并命名文件testbundle.php.
)。
这个空类是您唯一需要创建新捆绑包的部分。虽然通常是空的,但这个类是强大的,可用于自定义捆绑的行为。既然您已创建捆绑包,请启用:
// config / bundles.php返回[// ......app \ acme \ testbundle \ acmetestbundle::班级=>['全部'=>真的],];
虽然它还没有做任何事情,但AcmetestBundle现在可以使用。
捆绑目录结构¶
捆绑程序的目录结构旨在帮助保留所有Symfony捆绑包之间的代码。ob娱乐下载它遵循一组约定,但如果需要调整灵活性:
-
控制器/
-
包含捆绑的控制器(例如
randomcontroller.php.
)。 -
依赖性倾注/
- 保持某些依赖项注入扩展类,可以导入服务配置,寄存器编译器通过或更多(此目录不是必需的)。
-
资源/配置/
-
房屋配置,包括路由配置(例如
routing.yaml.
)。 -
资源/意见/
-
持有由控制器名称组织的模板(例如
随机/ index.html.twig.
)。 -
资源/公众/
-
包含Web资产(图像,样式表等),并将其复制或符号链接到项目中
上市/
通过这件目录资产:安装
控制台命令。 -
测试/
- 持有捆绑的所有测试。
捆绑可以像它实现的功能一样小或大。它只包含您需要的文件,也不是别的。
在通过指南移动时,您将了解如何将对象持久到数据库,创建和验证表单,为应用程序创建翻译,写入测试等等。这些中的每一个都有自己的位置和在捆绑中的角色。
这项工作包括代码样本,是在a下获得的许可Creative Commons by-SA 3.0执照。