Symfony2: как переопределить основной шаблон?

Я пытаюсь переопределить шаблоны SymfonyGeneratorBundle, создав

\app\Resources\SensioGeneratorBundle\skeleton\crud\views\index.html.twig 

Этот файл должен заменить:

 \vendor\bundles\Sensio\Bundle\GeneratorBundle\Resources\skeleton\crud\views\index.html.twig 

Но он по-прежнему использует оригинальный файл даже после cache:clear. Как это сделать без создания нового пакета, например Невозможно переопределить стандартные представления скелета в Symfony2 GeneratorBundle ?

Solutions Collecting From Web of "Symfony2: как переопределить основной шаблон?"

Зарегистрируйте свой пакет сразу после SensioGeneratorBundle в app/AppKernel.php например:

 // app/AppKernel.php if (in_array($this->getEnvironment(), array('dev', 'test'))) { //..... $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); $bundles[] = new Namespace\YourBundle(); } // Or outside if, should you want your bundle to be available in production environment $bundles[] = new Namespace\YourBundle(); 

Затем в YourBundle.php registerCommands метода YourBundle.php ,

 // Bundle\YourBundle.php // other declarations use Symfony\Component\Console\Application; use Sensio\Bundle\GeneratorBundle\Generator\DoctrineCrudGenerator; use Symfony\Component\Filesystem\Filesystem; public function registerCommands(Application $application){ $crudCommand = $application->get('generate:doctrine:crud'); $generator = new DoctrineCrudGenerator(new FileSystem, __DIR__.'/Resources/skeleton/crud'); $crudCommand->setGenerator($generator); parent::registerCommands($application); } 

Вам нужно скопировать папку skeleton в YourBundle\Resource и изменить шаблоны.

Чтобы переопределить шаблон редактирования, например, в версии 2.3+, скопируйте файл:

 vendor/sensio/generator-bundle/Sensio/Bundle/GeneratorBundle/Resources/skeleton/crud/views/edit.html.twig.twig 

для каталога:

 app/Resources/SensioGeneratorBundle/skeleton/crud/views/edit.html.twig.twig 

Теперь просто создайте crud с помощью команды по умолчанию, и он будет использовать новый шаблон.

Ответ m2mdas работал для меня, но только после обнаружения того, что он должен читать

Файловая система вместо FileSystem!

Взгляните на папку поставщиков / symfony /…/ Filesystem, чтобы проверить это.