官术网_书友最值得收藏!

  • Mastering Symfony
  • Sohail Salehi
  • 263字
  • 2021-07-16 11:28:59

Custom bundles versus AppBundle

When we use AppBundle as a code base, the app/ directory of our project can be seen as part of AppBundle. Sure, it has other files and folders that take care of other bundles available in the /vendor directory, for example, but we can benefit a lot from the app/ folder.

For example, if you look at the MyBundle/Resources folder, you will find two subfolders named Resources/config/ and Resources/views/, which hold service definitions (and other required settings in the future) and template files for that bundle.

However, with AppBundle, we already have a folder named app/, so conveniently, we can use the available app/config for our configuration needs and app/Resources/views for our templates. Using this approach, referencing these files are much easier.

Compare the render() method in indexAction() of each controller. In the AppBundle controller, we simply referenced the template file without mentioning the name of the bundle. When there is no bundle name, Symfony by default looks in the app/Resources/views directory to find the required template:

return $this->render('default/index.html.twig');

To check the contents of the app/Resources/views directory use the following command:

$ tree app/Resources/views/
app/Resources/views/
├── base.html.twig
└── default
 └── index.html.twig

In MyBundle, we have to mention the bundle name in the reference:

return $this->render('MyBundle:Default:index.html.twig');

Note

Did you notice the tests/ folder that Symfony created in the root of the project? We can use it to write tests for AppBundle.

We got two elements of MVC so far: Controller and View. Let's have a look at the big picture that we have now:

Custom bundles versus AppBundle
主站蜘蛛池模板: 筠连县| 习水县| 正宁县| 安吉县| 靖边县| 西和县| 博湖县| 自贡市| 湖北省| 崇州市| 调兵山市| 梨树县| 莒南县| 万山特区| 米脂县| 饶平县| 洪江市| 花垣县| 海原县| 鹿邑县| 遂昌县| 东港市| 合江县| 西丰县| 富裕县| 永吉县| 靖边县| 广河县| 平江县| 华安县| 萝北县| 襄汾县| 黄龙县| 宜都市| 高雄县| 闽清县| 华亭县| 衡阳县| 阿鲁科尔沁旗| 射阳县| 丹寨县|