包系统

编辑该页面

包系统

谨慎

在Sy欧宝娱乐app下载地址mfony的版本4.0之前,建议组织你自己的应用程序代码使用包。这不再是推荐和包只应该用于多个应用程序之间共享代码和功能。

一捆是类似于其他软件插件,但更好。Symfony框架实现的核心功能包(Fra欧宝娱乐app下载地址meworkBundle, SecurityBundle DebugBundle,等等)也用于在应用程序中添加新特性第三方包

必须启用/包中使用的应用程序环境配置/ bundles.php文件:

1 2 3 4 5 6 7 8 9 10 11 12
/ /配置/ bundles.php返回(/ /“所有”意味着包支持任何Symfony环境欧宝娱乐app下载地址欧宝娱乐app下载地址Symfony \包\ FrameworkBundle \ FrameworkBundle::类= > [“所有”= >真正的),S欧宝娱乐app下载地址ymfony \包\ SecurityBundle \ SecurityBundle::类= > [“所有”= >真正的),S欧宝娱乐app下载地址ymfony \包\ TwigBundle \ TwigBundle::类= > [“所有”= >真正的),S欧宝娱乐app下载地址ymfony \包\ MonologBundle \ MonologBundle::类= > [“所有”= >真正的),原则\包\ DoctrineBundle \ DoctrineBundle::类= > [“所有”= >真正的),包Sensio赞助\ \ FrameworkExtraBundle \ SensioFrameworkExtraBundle::类= > [“所有”= >真正的),/ /启用此包只在“开发”和“测试”,所以你不能使用它在“刺激”欧宝娱乐app下载地址Symfony \包\ WebProfilerBundle \ WebProfilerBundle::类= > [“开发”= >真正的,“测试”= >真正的]];

提示

在一个默认使用Symfon欧宝娱乐app下载地址y应用程序欧宝娱乐app下载地址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;使用欧宝娱乐app下载地址\组件\HttpKernel\\;AcmeTestBundle扩展{}

提示

AcmeTestBundle遵守标准的名称包的命名约定。你也可以选择缩短包的名称简单TestBundle命名该类TestBundle(和命名的文件TestBundle.php)。

这块空类是唯一你需要创建新的包。尽管通常空的,这类是强大的,可以用来定制包的行为。现在您已经创建了包,使它:

1 2 3 4 5
/ /配置/ bundles.php返回(/ /……App \ Acme \ TestBundle \ AcmeTestBundle::类= > [“所有”= >真正的]];

虽然它不做任何事,但AcmeTestBundle现在已经准备好被使用。

包目录结构

包的目录结构是为了帮助所有Symfony包之间保持代码一致。欧宝娱乐app下载地址它遵循一组约定,但如果需要灵活调整:

控制器/
包含包的控制器(如。RandomController.php)。
DependencyInjection /
持有一定的依赖注入扩展类,进口服务配置,编译器通过注册或更多(这个目录是没有必要的)。
资源/ config /
(如房屋配置,包括路由配置。routing.yaml)。
资源/视图/
由控制器名称(如保存模板。随机/ index.html.twig)。
资源/公共/
包含网络资产(图像、样式表等)和复制或象征性地链接到这个项目中公共/目录通过资产:安装控制台命令。
测试/
拥有所有的测试包。

一个包可以它实现了小型或者大型的特性。它只包含你所需要的文件。

当你移动通过指导,您将学习如何对象持久化到数据库中,创建和验证形式,为应用程序创建的翻译、编写测试和更多。每一个包中有自己的位置和作用。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 5.4支持通过私人Packagist