alchemy / lazy-command-bundle
v0.1.0
2015-07-27 13:15 UTC
Requires
- ocramius/proxy-manager: ^1.0
Requires (Dev)
- symfony/symfony: ~2.6
This package is auto-updated.
Last update: 2024-09-15 02:57:50 UTC
README
用于在Symfony命令中实现更好的依赖注入的包
安装
就像在终端中运行一个命令一样简单
composer require alchemy/lazy-command-bundle
.
当然,你还需要事先安装Composer。
使用
只需将包添加到您的内核中。目前,这是一个零配置、无烦恼的代理。
背景
在Symfony中使用命令作为服务可能会很痛苦,因为当你的依赖开始使用各种资源的连接(数据库、消息队列等)时,因为所有命令都必须实例化,以便Symfony控制台应用程序可以正常运行。
这个包试图通过用懒代理(使用优秀的ProxyManager库)替换你的命令的所有服务依赖来解决这个问题,确保只有在需要时才获取外部资源。
另一种方法可能是使用Symfony DI的内置功能将你的命令的依赖项标记为懒,但是当你的依赖在多个上下文中重复使用时(即,一个同时被控制台应用程序和网络应用程序使用的服务),并且在这些上下文中不需要(或者更糟,是性能损失)代理时,这种方法不是最优的。
工作原理
该包向你的服务容器的构建过程中添加一个编译器传递,用标记有console.command
标签的服务的懒代理替换所有服务引用。
在HTTP上下文中没有性能损失(除非你实际上在你的控制器中使用了你的命令,但那时你可能还有更大的问题要担心)。
目前没有基准测试,但代理你的命令依赖可能比获取实际上不会使用的外部资源便宜。
待办事项
- 添加配置设置以按需“懒化”命令
- 代理用于setter注入的依赖项
- 添加LICENCE(如果你想知道,它是MIT)
- 添加测试
- 添加CI(Travis,Scrutinizer)
- 添加徽章
- 将库添加到packagist
- 创建第一个版本