我尝试仅使用JMSDiExtraBundle的注释来创建奏鸣曲管理员。
管理:
/**
* @DIService("sonata.admin.company")
* @DITag("sonata.admin", attributes = {
* "manager_type" = "orm",
* "label"="Category",
* "group"="Orders"
* })
*/
class CompanyAdmin extends Admin
{
/**
* @DIInjectParams({
* "code" = @DIInject("%admin__company__class%"),
* "class" = @DIInject("%admin__company__code%"),
* "baseControllerName" = @DIInject("%admin__company__base_controller_name%")
* })
*/
public function __construct($code, $class, $baseControllerName)
{
parent::__construct($code, $class, $baseControllerName);
}
}
和带有参数的文件:
parameters:
# parameter_name: value
admin__company__class: AppBundleEntityCompany
admin__company__base_controller_name: SonataAdminBundle:CRUD
admin__company__code: admin.company
当我在 yml 中注册管理员时,它可以工作,但使用注释号。
汤姆
正如 JMSDiExtraBundle 的文档所述:
缺省情况下,只能在非服务控制器上使用提供的注释;不会扫描其他目录。
但是,如果您还想使用注释来配置常规服务,则可以配置更多位置,如下所示。
如果您想通过注释在您的捆绑包中配置服务,或者在任何捆绑包结构之外(例如在 src/目录中)中配置一些服务,您可以使用以下配置选项,以便捆绑包将选取它们,并将它们添加到您的依赖注入容器中:
jms_di_extra:
locations:
all_bundles: false
bundles: [FooBundle, AcmeBlogBundle]
directories: ["%kernel.root_dir%/../src"]