书籍Symfony 5:快速轨道欧宝娱乐app下载地址

欧宝娱乐app下载地址交响乐5:快车道是学习现代Symfony发展,从零到生产的最好书籍。欧宝娱乐app下载地址+300页展示Symfony与Docker,欧宝娱乐app下载地址 api,队列和异步任务,Webpack, spa等。

包系统

5.3版本
欧宝娱乐app下载地址Symfony 5.3支持通过乔利德

包系统

谨慎

在4.欧宝娱乐app下载地址0之前的Symfony版本中,建议使用捆绑包组织您自己的应用程序代码。这不再推荐,并且捆绑包应仅用于在多个应用程序之间共享代码和功能。

捆绑包类似于其他软件中的插件,但更好。Symfony框架的核心特性是通过捆绑包(欧宝娱乐app下载地址FrameworkBundle, SecurityBundle, DebugBundle等)实现的。它们也被用来通过捆绑包在你的应用程序中添加新特性第三方包

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

// config / bundles.php返回(// 'all'表示bundle为任何Symfony环境启用欧宝娱乐app下载地址欧宝娱乐app下载地址symfony \ bundle \ frameworkbundle \ frameworkbundle::=>(“所有”=>真的),欧宝娱乐app下载地址Symfony \包\ SecurityBundle \ SecurityBundle::=>(“所有”=>真的),欧宝娱乐app下载地址symfony \ bundle \ twigbundle \ twigbundle::=>(“所有”=>真的),欧宝娱乐app下载地址Symfony \包\ MonologBundle \ MonologBundle::=>(“所有”=>真的),欧宝娱乐app下载地址Symfony \包\ SwiftmailerBundle \ SwiftmailerBundle::=>(“所有”=>真的),学说\包\ DoctrineBundle \ DoctrineBundle::=>(“所有”=>真的),Sensio赞助\包\ FrameworkExtraBundle \ SensioFrameworkExtraBundle::=>(“所有”=>真的),//只有在'dev'和'test'中仅启用此包,因此您无法在'prod'中使用它欧宝娱乐app下载地址Symfony \包\ WebProfilerBundle \ WebProfilerBundle::=>(“开发”=>真的,“测试”=>真的),];

提示

在默认的Symfony应用欧宝娱乐app下载地址程序中使用欧宝娱乐app下载地址Symfony Flex如果安装/删除它们时,捆绑包会自动启用/禁用,因此您不需要查看或编辑此bundles.php文件。

创建一个包

本节创建并启用一个新bundle,以显示只需要几个步骤。新bundle被称为acmetstbundle,其中Acmepart是一个示例名称,它应该被一些代表你或你的组织的“供应商”名称(例如,ABCTestBundle用于一些命名的公司美国广播公司)。

首先创建一个src / acme / testbundle /目录,并添加一个名为AcmeTestBundle.php:

/ / src / Acme / TestBundle / AcmeTestBundle.php命名空间app \ acme \ testbundle;欧宝娱乐app下载地址Symfony \ HttpKernel \包\ \组件包;AcmeTestBundle扩展{}

提示

名称acmetstbundle遵循这个标准包的命名约定。您还可以选择通过命名这个类TestBundle(并命名文件)来简单地将bundle的名称缩短为TestBundletestbundle.php.)。

这个空类是创建新bundle所需的惟一部分。虽然通常是空的,但是这个类非常强大,可以用来定制包的行为。现在你已经创建了这个bundle,启用它:

// config / bundles.php返回(/ /……App \ Acme \ TestBundle \ AcmeTestBundle::=>(“所有”=>真的),];

虽然它还没有做任何事情,但AcmetestBundle现在可以使用。

包目录结构

捆绑程序的目录结构旨在帮助保留所有Symfony捆绑包之间的代码。欧宝娱乐app下载地址它遵循一组约定,但如果需要调整灵活性:

控制器/
包含捆绑的控制器(例如randomcontroller.php.)。
DependencyInjection /
包含某些依赖注入扩展类,这些类可以导入服务配置、注册编译器传递或更多(这个目录是不必要的)。
资源/ config /
房屋配置,包括路由配置(例如routing.yaml)。
资源/视图/
保存按控制器名称(例如。随机/ index.html.twig.)。
资源/公众/
包含Web资产(图像,样式表等),并将其复制或符号链接到项目中公共/目录通过资产:安装控制台命令。
测试/
持有捆绑的所有测试。

一个bundle可以根据它实现的特性大小而定。它只包含您需要的文件,其他什么也不包含。

在通过指南移动时,您将了解如何将对象持久到数据库,创建和验证表单,为应用程序创建翻译,写入测试等等。这些中的每一个都有自己的位置和在捆绑中的角色。

这项工作包括代码样本,是在a下获得的许可创作共用BY-SA 3.0许可证。