Symfony 3 Sonata Admin создать администратора с помощью аннотации

Я пытаюсь создать администратора сонаты, используя только аннотацию из JMSDiExtraBundle.

Админ:

/**
 * @DI\Service("sonata.admin.company")
 * @DI\Tag("sonata.admin", attributes = {
 *     "manager_type" = "orm",
 *     "label"="Category",
 *     "group"="Orders"
 *      })
 */
class CompanyAdmin extends Admin
{
    /**
     * @DI\InjectParams({
     *     "code" = @DI\Inject("%admin__company__class%"),
     *     "class" = @DI\Inject("%admin__company__code%"),
     *     "baseControllerName" = @DI\Inject("%admin__company__base_controller_name%")
     * })
     */
    public function __construct($code, $class, $baseControllerName)
    {
        parent::__construct($code, $class, $baseControllerName);
    }
}

И файл с параметрами:

parameters:
#    parameter_name: value
    admin__company__class: AppBundle\Entity\Company
    admin__company__base_controller_name: SonataAdminBundle:CRUD
    admin__company__code: admin.company

Когда я регистрирую администратора в yml, он работает, но с использованием аннотации №

Том


person Tomasz Furca    schedule 21.03.2016    source источник


Ответы (1)


Как указано в документации для JMSDiExtraBundle:

По умолчанию вы можете использовать предоставленные аннотации только на своих не обслуживающих контроллерах; никакие другие каталоги не сканируются.

Однако, если вы также хотите использовать аннотации для настройки своих обычных служб, вы можете настроить другие местоположения, как показано ниже.

Если вы хотите настроить службы в своем пакете с помощью аннотаций или иметь некоторые службы вне какой-либо структуры пакетов, например, в вашем каталоге src /, вы можете использовать следующие параметры конфигурации, чтобы пакет забрал их , и добавьте их в контейнер для внедрения зависимостей:

jms_di_extra:
    locations:
        all_bundles: false
        bundles: [FooBundle, AcmeBlogBundle]
        directories: ["%kernel.root_dir%/../src"]
person Alexandru Furculita    schedule 21.03.2016
comment
@TomaszFurca, если это ответило на ваш вопрос, отметьте ответ! - person Dennis Haarbrink; 16.09.2016