symfony - 来自进程的控制器操作
问题描述
Symfony 2.8
在从命令调用的服务中,有没有办法将控制器操作作为流程对象执行/调用?或者我是否必须将该控制器操作转换为命令才能被进程调用?
我需要执行已经编码到控制器操作中的迭代 BL(业务逻辑)元素。
调用链是:
预定命令->服务容器-> N个进程或任何带有BL的东西。
服务必须控制/监控流程的执行。(启动、运行、停止等)
还有什么办法吗?
干杯!!
解决方案
为了避免从控制器操作中复制业务逻辑,创建一个新服务并将其声明到服务容器中,您指定您使用的是 symfony 2.8,因此没有可用的自动装配功能,您需要手动声明它
services:
app.custom_service:
class: AppBundle\Service\BusinessLogicService
arguments: []
然后你可以在你的控制器中使用它通过(依赖注入)注入它或者简单地从容器服务中调用它
// the container will instantiate a new BusinessLogicService()
$service = $this->container->get('app.custom_service');
对于该命令,您可以实现ContainerAwareInterface并再次从服务容器调用您的服务
前任:
class BusinessLogicCommand extends Command implements ContainerAwareInterface
{
public function getBusinessLogicService()
{
return $this->getContainer()->get('app.custom_service');
}
}
推荐阅读
- javascript - 如何使我的文本截断以进行持续响应?
- kubernetes-helm - 使用 Enmasse 部署 Hono
- flutter - 如何在颤振中将提供者设置为仅一种类型的数据?
- express - 快速会话不会在重新加载时持续存在。(连接蒙戈)
- youtube-api - 使用 curl 调用的 YouTube 数据 API:请求缺少有效的 API 密钥
- scala - 如何在scala中为spark数据框添加具有重复序列号的列?
- oracle - 匿名块不在 SQL Developer 上运行,但在 Toad 上运行
- machine-learning - 如何检查python中k-means聚类的准确性?如何知道预测变量在 k-means 算法中代表什么?
- hibernate - Quarkus panache 1:m 映射没有给出正确的响应
- jasper-reports - 表格中的 Jaspersoft 报表数据栏