Php Symfony 2-从控制台命令调用控制器方法
我试图创建一个symfony控制台命令来执行一个端点 BillingBundle/Command/RejectCommand.php 当我使用POSTman调用端点/拒绝线时,这种方法可以很好地工作。然而,我不太确定如何从控制台命令调用,以便在调用时 php应用程序/控制台cron:rejectLines 它起作用了 这就是我想要实现的Php Symfony 2-从控制台命令调用控制器方法,php,symfony,cron,Php,Symfony,Cron,我试图创建一个symfony控制台命令来执行一个端点 BillingBundle/Command/RejectCommand.php 当我使用POSTman调用端点/拒绝线时,这种方法可以很好地工作。然而,我不太确定如何从控制台命令调用,以便在调用时 php应用程序/控制台cron:rejectLines 它起作用了 这就是我想要实现的 $cron = new SalesOrderService(); $cron->rejectSalesOrderLines(); 但是,因为SalesO
$cron = new SalesOrderService();
$cron->rejectSalesOrderLines();
但是,因为SalesOrderService类有一些参数传递给_构造,所以我不太确定在通过命令行调用时如何传递它。有什么想法吗?您不需要从命令行传递参数。您需要您的服务通过DI容器注入其参数 我在您的控制器上看到了
InjectParams
注释,因此我认为您正在使用jmsdiextranble
。在这种情况下,您可以在服务/控制器上注入参数(就像您所做的那样),并使用
<?php
use JMS\DiExtraBundle\Annotation\Service;
/**
* @Service("some.service.id")
*/
class SalesOrderService
{
....
}
$yourService = $this->getContainer()->get('some.service.id');
您的
SalesOrderService
是一项服务,其生命周期由依赖项注入系统的symfony2容器管理。
因此,您可能会在类定义中找到服务声明的名称(您正在使用),因此:
/**
* @Service("salesorder.service.id")
*/
class SalesOrderService
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln("Starting the cron");
// Call the method here
$service = $this->getContainer()->get('salesorder.service.id');
$service-> rejectSalesOrderLines()
$output->writeln("Cron completed");
}
希望获得此帮助您是否尝试在CLI中运行它?输出是什么?
/**
* @Service("salesorder.service.id")
*/
class SalesOrderService
protected function execute(InputInterface $input, OutputInterface $output)
{
$output->writeln("Starting the cron");
// Call the method here
$service = $this->getContainer()->get('salesorder.service.id');
$service-> rejectSalesOrderLines()
$output->writeln("Cron completed");
}