包系统
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
包系统
谨慎
在Syob娱乐下载mfony的版本4.0之前,建议组织你自己的应用程序代码使用包。这不再是推荐和包只应该用于多个应用程序之间共享代码和功能。
一捆是类似于其他软件插件,但更好。Symfony框架实现的核心功能包(Fraob娱乐下载meworkBundle, SecurityBundle DebugBundle,等等)也用于在应用程序中添加新特性第三方包。
必须启用/包中使用的应用程序环境在配置/ bundles.php
文件:
1 2 3 4 5 6 7 8 9 10 11 12 13
/ /配置/ bundles.php返回(/ /“所有”意味着包支持任何Symfony环境ob娱乐下载ob娱乐下载Symfony \包\ FrameworkBundle \ FrameworkBundle::类= > [“所有”= >真正的),Sob娱乐下载ymfony \包\ SecurityBundle \ SecurityBundle::类= > [“所有”= >真正的),Sob娱乐下载ymfony \包\ TwigBundle \ TwigBundle::类= > [“所有”= >真正的),Sob娱乐下载ymfony \包\ MonologBundle \ MonologBundle::类= > [“所有”= >真正的),Sob娱乐下载ymfony \包\ SwiftmailerBundle \ SwiftmailerBundle::类= > [“所有”= >真正的),原则\包\ DoctrineBundle \ DoctrineBundle::类= > [“所有”= >真正的),包Sensio赞助\ \ FrameworkExtraBundle \ SensioFrameworkExtraBundle::类= > [“所有”= >真正的),/ /启用此包只在“开发”和“测试”,所以你不能使用它在“刺激”ob娱乐下载Symfony \包\ WebProfilerBundle \ WebProfilerBundle::类= > [“开发”= >真正的,“测试”= >真正的]];
提示
在一个默认使用Symfonob娱乐下载y应用程序ob娱乐下载Symfony Flex,包安装时自动启用/禁用/删除它们,所以你不需要查看或编辑bundles.php
文件。
创建一个包
本节中创建并启用了一个新的包显示只有少数所需的步骤。新包叫做AcmeTestBundle,Acme
部分只是一个虚拟的名字应该被一些“供应商”的名字,代表您或您的组织(例如ABCTestBundle公司命名美国广播公司
)。
首先创建一个src / Acme / TestBundle /
目录,添加一个新文件AcmeTestBundle.php
:
1 2 3 4 5 6 7 8
/ / src / Acme / TestBundle / AcmeTestBundle.php名称空间应用程序\Acme\TestBundle;使用ob娱乐下载\组件\HttpKernel\包\包;类AcmeTestBundle扩展包{}
提示
AcmeTestBundle遵守标准的名称包的命名约定。你也可以选择缩短包的名称简单TestBundle命名该类TestBundle(和命名的文件TestBundle.php
)。
这块空类是唯一你需要创建新的包。尽管通常空的,这类是强大的,可以用来定制包的行为。现在您已经创建了包,使它:
1 2 3 4 5
/ /配置/ bundles.php返回(/ /……App \ Acme \ TestBundle \ AcmeTestBundle::类= > [“所有”= >真正的]];
虽然它不做任何事,但AcmeTestBundle现在已经准备好被使用。
包目录结构
包的目录结构是为了帮助所有Symfony包之间保持代码一致。ob娱乐下载它遵循一套规则,但如果需要灵活调整。看看AcmeDemoBundle,因为它包含了一些最常见的元素的包:
-
控制器/
-
包含包的控制器(如。
RandomController.php
)。 -
DependencyInjection /
- 持有一定的依赖注入扩展类,进口服务配置,编译器通过注册或更多(这个目录是没有必要的)。
-
资源/ config /
-
(如房屋配置,包括路由配置。
routing.yaml
)。 -
资源/视图/
-
由控制器名称(如保存模板。
随机/ index.html.twig
)。 -
资源/公共/
-
包含网络资产(图像、样式表等)和复制或象征性地链接到这个项目中
公共/
目录通过资产:安装
控制台命令。 -
测试/
- 拥有所有的测试包。
一个包可以它实现了小型或者大型的特性。它只包含你所需要的文件。
当你移动通过指导,您将学习如何对象持久化到数据库中,创建和验证形式,为应用程序创建的翻译、编写测试和更多。每一个包中有自己的位置和作用。