knplabs / rad-auto-registration
此包已被弃用,不再维护。未建议替代包。
自动注册一些常见服务
v2.2.3
2017-09-21 08:23 UTC
Requires
- php: ~7.0
- doctrine/dbal: ~2.2
- doctrine/inflector: ~1.0
- psr/log: ~1.0
- symfony/config: ~2.8||~3.0
- symfony/dependency-injection: ~2.8||~3.0
- symfony/framework-bundle: ~2.8||~3.0
- symfony/http-kernel: ~2.8||~3.0
- symfony/security-bundle: ~2.8||~3.0
- symfony/twig-bundle: ~2.8||~3.0
- twig/twig: ~1
Requires (Dev)
- bossa/phpspec2-expect: ~1.0.0
- knplabs/phpspec-welldone-extension: dev-master@dev
- pedrotroller/php-cs-custom-fixer: ~1.2.1
- phpspec/phpspec: ~2.4
README
不幸的是,我们决定不再维护此项目(查看原因)。如果您想将其他包作为此包的替代品,请发送电子邮件至 hello@knplabs.com。
快速应用开发:自动注册
自动注册一些常见服务
官方维护者
安装
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_mongodb
或 doctrine_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 实体(或文档)应存储在 Entity
、Document
或 Model
子命名空间下。
约束验证器
只需将 constraint_validator
激活到您的配置中。
knp_rad_auto_registration: enable: constraint_validator: ~
现在所有自定义约束验证器都自动注册了。
要求
您的约束验证器应存储在 Validation
或 Validator
子命名空间下。
表单扩展
只需将 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扩展应该存储在Twig
或Templating
子命名空间下。
公共/私有服务
默认情况下,所有自动注册的服务都被标记为私有
(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')
获取它们。如果需要,请自己创建服务定义。