You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.4 KiB
59 lines
2.4 KiB
<?php
|
|
namespace Zitec\RuleEngineBundle\Traits;
|
|
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Console\Application;
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
use Symfony\Component\Console\Input\ArrayInput;
|
|
use Symfony\Component\Console\Output\BufferedOutput;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Component\HttpKernel\KernelInterface;
|
|
|
|
trait ActionsTrait
|
|
{
|
|
public function executeConditionActions($userId, $action = null, $condition='true')
|
|
{
|
|
if($action==null){
|
|
return;
|
|
}
|
|
$application = new Application($this->kernel);
|
|
$application->setAutoExit(false);
|
|
error_reporting ( E_ALL & ~E_DEPRECATED & ~E_STRICT);
|
|
$input = new ArrayInput([
|
|
'command' => 'zitec:action:execute',
|
|
// (optional) define the value of command arguments
|
|
'action' => $action,
|
|
'condition' => $condition,
|
|
'userid' => $userId,
|
|
|
|
]);
|
|
file_put_contents ( 'action.log' , 'zitec:action:execute '. $action.' '.$condition.' '.$userId , FILE_APPEND );
|
|
error_reporting(E_ERROR | E_WARNING | E_PARSE);
|
|
// You can use NullOutput() if you don't need the output
|
|
$output = new BufferedOutput();
|
|
$application->run($input, $output);
|
|
|
|
// return the output, don't use if you used NullOutput()
|
|
$content = $output->fetch();
|
|
if($this->getParameter('kernel.environment')=='prod'){
|
|
if(json_decode($content, true)['route'] ||json_decode($content, true)['error'])
|
|
return $content;
|
|
}
|
|
$content=explode("\n",$content);
|
|
|
|
$lastelement=null;
|
|
foreach($content as $contenido){
|
|
if (!is_array($contenido)){
|
|
if(json_decode($contenido, true)['route'] ||json_decode($contenido, true)['error'])
|
|
$lastelement= $contenido;
|
|
}else{
|
|
if(json_decode(end($contenido), true)['route'] ||json_decode(end($contenido), true)['error'])
|
|
$lastelement= end($contenido);
|
|
}
|
|
}
|
|
// if(!empty($content))
|
|
// die(print_r($content,true));
|
|
return $lastelement;//$content;//[count($content)-2];
|
|
}
|
|
}
|