Przede wszystkim: Odpowiednie poglądy szkielet znajdują się tutaj:
vendor/bundles/Sensio/Bundle/GeneratorBundle/Resources/skeleton/crud
szybki i brudny powinno być w porządku nadrzędnymi te pliki widoków - ale nie to co chcemy;)
w:
vendor/bundles/Sensio/Bundle/GeneratorBundle/Command/GenerateDoctrineCrudCommand.php
istnieje accessor dla generatora:
protected function getGenerator()
{
if (null === $this->generator) {
$this->generator = new DoctrineCrudGenerator($this->getContainer()->get('filesystem'), __DIR__.'/../Resources/skeleton/crud');
}
return $this->generator;
}
Można spróbować zastąpić tę metodę w pakiecie rozszerzającym i ustawić inny $skeletonDir
w konstruktorze.
Edit:
Krótki przykład w moim środowisku testowym, jak można to osiągnąć (I tylko wykonany szybki test;):
wygenerować nowy pakiet dla generatora niestandardowych: php app/console generate:bundle
i wykonaj instrukcje. Trasa nie jest potrzebna. Wybrałem dla tego przykładu: Acme/CrudGeneratorBundle (lub użyj istniejącego pakietu)
Utwórz folder o nazwie "Command" w nowo utworzonym katalogu pakunków.
Umieść klasę poleceń w tym folderze.
<?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();
}
}
Kopiowanie sprzedawca/pakiety/Sensio/Paczka/GeneratorBundle/Resources/skeleton/CRUD do zasobów (w moim przykładzie "src/Acme/CrudGeneratorBundle/Resources/crud")
Zdecydowanie nie chcę robić szybkiego i brudnego hacka! Ale próbowałem zastąpić funkcję getGenerator i to nadal nie działa –
Zaktualizowałem odpowiedź na przykładzie, jak to działa. Nadal - to jest hack. – madflow