knplabs/rad-auto-registration

此包已被弃用,不再维护。未建议替代包。

自动注册一些常见服务

v2.2.3 2017-09-21 08:23 UTC

README

不幸的是,我们决定不再维护此项目(查看原因)。如果您想将其他包作为此包的替代品,请发送电子邮件至 hello@knplabs.com

快速应用开发:自动注册

自动注册一些常见服务

Build Status Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License

官方维护者

安装

composer require knplabs/rad-auto-registration:~2.0
class AppKernel
{
    function registerBundles()
    {
        $bundles = array(
            //...
            new Knp\Rad\AutoRegistration\Bundle\AutoRegistrationBundle($this), // !! Do not forget to inject the kernel !!
            //...
        );

        //...

        return $bundles;
    }
}

使用

Doctrine 仓库自动注册

只需将 doctrine(或根据需要为 doctrine_mongodbdoctrine_couchdb)激活到您的配置中。

knp_rad_auto_registration:
    enable:
        doctrine: ~
        doctrine_mongodb: ~
        doctrine_couchdb: ~

现在所有仓库都自动注册了。

实体 仓库
MyProjectBundle\Entity\User my_project_bundle.entity.user_repository
TheOtherBundle\Entity\Model\Address the_other_bundle.model.user.address_repository
MyProjectBunde\Document\User my_project_bundle.document.user_repository

要求

您的 doctrine 实体(或文档)应存储在 EntityDocumentModel 子命名空间下。

约束验证器

只需将 constraint_validator 激活到您的配置中。

knp_rad_auto_registration:
    enable:
        constraint_validator: ~

现在所有自定义约束验证器都自动注册了。

要求

您的约束验证器应存储在 ValidationValidator 子命名空间下。

表单扩展

只需将 form_type_extension 激活到您的配置中。

knp_rad_auto_registration:
    enable:
        form_type_extension: ~

现在所有表单类型扩展都自动注册了。

要求

您的表单类型扩展应存储在 Form 子命名空间下。

安全投票者

只需将 security_voter 激活到您的配置中。

knp_rad_auto_registration:
    enable:
        security_voter: ~

现在所有投票者都自动注册了。

要求

您的安全投票者应存储在 Security 子命名空间下。

Twig 扩展

只需将 twig_extension 激活到您的配置中。

knp_rad_auto_registration:
    enable:
        twig_extension: ~

现在所有 Twig 扩展都自动注册了。

要求

您的Twig扩展应该存储在TwigTemplating子命名空间下。

公共/私有服务

默认情况下,所有自动注册的服务都被标记为私有public: false)。您可以通过将public参数设置为true来覆盖此行为。

示例

knp_rad_auto_registration:
    enable:
        doctrine:
            public: true
        doctrine_mongodb:
            public: false
        doctrine_couchdb:
            public: false

限制

自动加载

  • 只有没有构造函数或构造函数中不包含必需参数的服务才会自动注册。
  • 如果服务已经存在,则不会将其删除。

您可以对某些包应用自动注册。您只需添加一个bundles配置。

knp_rad_auto_registration:
    enable:
        # ...
    bundles: [ App, ProductBundle ]

警告

所有自动注册的服务都被设置为私有,因此无法使用$container->get('service_name')获取它们。如果需要,请自己创建服务定义。