Вот более понятный пример
Давайте начнем с некоторых предположений
Имя вашего пакета: AcmeBundle
Пакет, который вы хотитепереопределить: FOSUserBundle
Выполнить команду php bin/console debug:twig
и найти пространство имен пакета, который вы хотите переопределить.В данном случае это @FOSUser
.
Ваше расширение пакета должно выглядеть следующим образом
<?php // src/AcmeBundle/DependencyInjection/AcmeExtension.php
namespace AcmeBundle\DependencyInjection;
// ...
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
class AcmeExtension extends Extension implements PrependExtensionInterface
{
// ...
public function prepend(ContainerBuilder $container)
{
$container->loadFromExtension('twig', array(
'paths' => array(
'%kernel.project_dir%/src/AcmeBundle/Resources/FOSUserBundle/views' => 'FOSUser', // You use the namespace you found earlier here. Discard the `@` symbol.
),
));
}
}
Теперь вы можете создать src/AcmeBundle/Resources/FOSUserBundle/views/Security/login.html.twig
для переопределения шаблона входа в FOSUserBundle.
Это был просто пример для FOSUserBundle.Вы можете изменить имена пакетов в зависимости от того, что вы пытаетесь переопределить.