symfony中的bundle是什么

PHPz
PHPz 原创
2020-09-04 17:25:39 1435浏览

symfony中的bundle类似于一个插件,一个bundle就是一个目录,它具有很好的结构性,它可以存放从class到controller再到静态的资源等任何东西,而一个bundle仅仅是一个结构化的文件目录集合,它实现一个单一的内容。

symfony中的bundle是什么?

在symfony中,一个bundle就类似于一个插件,但是它比插件实现得更好一些。而且symfony这个框架和别的框架的很大的不同就是,它的所有东西都是bundle,包括核心的框架功能和我们写的程序代码。

这样的好处就是给了我们使用其他第三方开发的内容包或者向外分发我们自己的bundle的灵活性,我们可以方便的选择哪些内容可以添加到我们的应用中,而哪些不添加。

一个bundle就是一个目录,它具有很好的结构性,它可以存放从class到controller再到静态的资源等任何东西,而一个bundle仅仅是一个结构化的文件目录集合,它实现一个单一的内容。而一个应用程序是在APPKernel类中的registerBundles()方法中所定义的所有bundle所组成。

而且一个bundle可以存放在任何目录下,只要我们能够配置app/autoload.php文件下的自动加载器来加载它即可。当然,symfony也给我们提供了php app/console generate:bundle这个命令来进行创建一个bundle。

其中bundle中的目录结构非常灵活,它通常有如下几个内容:

(1)Controller 表示包含所有的控制器。

(2)DependencyInjection表示特定的依赖注入扩展类,它可能会导入服务配置,注册编译器传输或者其他的内容。

(3)Resources 表示资源文件,通常config存放配置文件,比如routing.yml是路由配置,而views则存放的时模板文件,而public下通常存放web资源。

(4)Tests则保存所有的测试。

其实一个bundle同时也是一个php的命名空间,命名空间必须遵循php5.3命名空间和类名的内部技术标准。开始使用提供商名,然后是可省略的分类段,最后是命名空间的简写名字,而且该名字必须以Bundle作为后缀。一个命名空间变成一个bundle只需要在命名空间的后面添加一个bundle类即可。

更多相关技术文章,请访问PHP中文网

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。