Есть ли способ обойтись без имени пакета в частях системы как View или Routing?
Например, вместо этого я хочу использовать:
{% extends "SomeAppBundle::layout.html.twig" %}
Использовать это:
{% extends "layout.html.twig" %}
Или же:
$router->add('index', new Route('/', array(
'_controller' => 'SomeAppBundle:Default:index',
)));
Заменить:
$router->add('index', new Route('/', array(
'_controller' => 'Default:index',
)));
Я не совсем понял, что такое принуждение к бандлам, но думаю, что этот подход более очевиден для приложений с одним бандлом. Зачем указывать имя пакета, если я нахожусь в пространстве этого пакета?
1 ответ
В документации по symfony говорится:
Прежде чем начать, вам нужно создать пакет. В Symfony2 пакет похож на плагин, за исключением того, что весь код в вашем приложении будет находиться внутри пакета.
Если у вас есть редкий случай, когда у вас действительно только один пакет, вы можете рассматривать это как накладные расходы. Но и тогда есть преимущества:
- Ваше приложение выглядит одинаково независимо от того, есть ли у него один или 10 пакетов.
- Если вам нужен другой пакет, вам не нужно менять все («О, нам может понадобиться Backend»).
- Ядру не нужно обрабатывать разные случаи
Я бы посоветовал вам работать с фреймворком, создавая один пакет, даже если он единственный. Вы действительно не почувствуете этого, когда создадите его, и это значительно упрощает работу.
Похожие вопросы
Новые вопросы
symfony
Symfony относится как к фреймворку PHP для создания веб-приложений, так и к набору компонентов, на которых строится фреймворк. Этот тег относится к поддерживаемым в настоящее время основным версиям 3.x, 4.x, 5.x и 6.x. Кроме того, вы можете указать точную версию, используя соответствующий тег. Этот тег не следует использовать для вопросов о Symfony 1.x. Вместо этого используйте тег Symfony1.
Default
вDefault:index
пакете или контроллере? А где найтиlayout.html.twig
? В[Thisbundle]::layout.html
,[ThisBundle]:index:layout.html.twig
, в::layout.html.twig
, ...?