Symfony4 MakerBundle Собственный Crud Maker

Я хочу настроить шаблонный код нового создателя сырой массы makerbundle. Нет простой перезаписи шаблонов, как это было в SensioGeneratorBundle. Я попытался создать собственный MyMakeCrud на основе исходного кода, но я борюсь с введенным DoctrineEntityHelper $entityHelper.

 Cannot autowire service "App\Maker\MakeMyCrud": argument "$entityHelper" of
 method "__construct()" references class "Symfony\Bundle\MakerBundle\Doctri
 ne\DoctrineEntityHelper" but no such service exists. You should maybe alias
 this class to the existing "maker.doctrine_entity_helper" service.

Существующий maker.doctrine_entity_helper определен как приватный в пакете maker. Как я могу запустить инъекцию?

Не могли бы вы помочь мне? Есть ли у кого-нибудь пример настройки генерации crud? Новое в сф4.


person Hauke    schedule 10.05.2018    source источник


Ответы (2)


Вы должны определить службу для него, как показано ниже:

    app.maker.make_crud:
    class: App\Maker\MakeCrud
    arguments: ['@maker.doctrine_helper']
    calls:
        - [configureCommand, ['@security.command.user_password_encoder', '@?']]
        - [interact, ['@?', '@?', '@security.command.user_password_encoder']]
    tags:
        - { name: maker.command }

Я поместил это в config/services.yaml.

App\Maker\MakeCrud — это ваш класс по производству хлама.

Это действительно следует поместить в файл services_dev.yaml.

Надеюсь это поможет.

person Carl Owens    schedule 29.05.2018
comment
Пробовал так (в config/services.yaml - с App\Maker\MakeMyCrud). Получить: служба maker.auto_command.make_my_crud зависит от несуществующей службы maker.doctrine_helper ? - person Hauke; 05.06.2018
comment
Только ошибка аргумента: @maker.doctrine_entity_helper - тогда все в порядке! - person Hauke; 06.06.2018

Большое спасибо вам обоим за этот пост. Мне также пришлось настроить команду MakeCrud. Это конфигурация, которая работала для меня для версии 5.

app.maker.make_crud:
    class: App\Maker\MakeCrudCommand
    arguments: ['@maker.doctrine_helper', '@maker.renderer.form_type_renderer']
    calls:
        - [configureCommand, ['@security.command.user_password_encoder', '@?']]
        - [interact, ['@?', '@?', '@security.command.user_password_encoder']]
    tags:
        - { name: maker.command }
person Abdi    schedule 02.06.2020
comment
Учитывая это, я так понимаю, что ответ @Carl-Owens больше не работает в версии 5? - person Jeremy Caney; 02.06.2020