Прежде всего: соответствующие скелетные виды расположены здесь:
vendor/bundles/Sensio/Bundle/GeneratorBundle/Resources/skeleton/crud
Быстро и грязно, у вас все будет хорошо, переопределив эти файлы просмотра - но это не то, что мы хотим;)
В
vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineCrudCommand.php
есть генератор для Генератора:
protected function getGenerator()
{
if (null === $this->generator) {
$this->generator = new DoctrineCrudGenerator($this->getContainer()->get('filesystem'), __DIR__.'/../Resources/skeleton/crud');
}
return $this->generator;
}
Можно попытаться переопределить этот метод в своем расширяющем Bundle и установить другой $skeletonDir
в конструкторе.
Edit:
Быстрый пример в моей тестовой среде, как этого можно достичь (я только сделал быстрый тест;):
Создайте новый комплект для пользовательского генератора: php app/console generate:bundle
и следуйте инструкциям. Маршрут не нужен. Я выбрал для этого примера: Acme / CrudGeneratorBundle (или использовать существующий пакет)
Создайте папку с именем «Command» во вновь созданном каталоге комплекта.
Поместите класс команд в эту папку.
<?php
//src/Acme/CrudGeneratorBundle/Command/MyDoctrineCrudCommand.php
namespace Acme\CrudGeneratorBundle\Command;
use Sensio\Bundle\GeneratorBundle\Generator\DoctrineCrudGenerator;
class MyDoctrineCrudCommand extends \Sensio\Bundle\GeneratorBundle\Command\GenerateDoctrineCrudCommand
{
protected function configure()
{
parent::configure();
$this->setName('mydoctrine:generate:crud');
}
protected function getGenerator()
{
$generator = new DoctrineCrudGenerator($this->getContainer()->get('filesystem'), __DIR__.'/../Resources/skeleton/crud');
$this->setGenerator($generator);
return parent::getGenerator();
}
}
Скопируйте поставщика / bundles / Sensio / Bundle / GeneratorBundle / Resources / skeleton / crud в свои ресурсы (в моем примере "src / Acme / CrudGeneratorBundle / Resources / crud")