Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Phalcon CLI-正确设置依赖项注入对象_Php_Dependency Injection_Phalcon - Fatal编程技术网

Php Phalcon CLI-正确设置依赖项注入对象

Php Phalcon CLI-正确设置依赖项注入对象,php,dependency-injection,phalcon,Php,Dependency Injection,Phalcon,在CLI环境中正确使用Phalcon似乎有问题。我想有一个简单的脚本,我可以使用它快速测试一些函数。我创建了一个依赖项注入器对象,如下所示: class MainTask extends \Phalcon\CLI\Task { function validate($req, $index) { if ($req->hasPost($index)) { $val = ($req->getPost($index, 'trim'));

在CLI环境中正确使用Phalcon似乎有问题。我想有一个简单的脚本,我可以使用它快速测试一些函数。我创建了一个依赖项注入器对象,如下所示:

class MainTask extends \Phalcon\CLI\Task {
     function validate($req, $index) {
         if ($req->hasPost($index)) {
             $val = ($req->getPost($index, 'trim'));
          }
          .....
 }

$di = new Phalcon\DI();
$di->set('data', function(){
    return "data";
});
$task = new MainTask();
$task->setDI($di);

$request = new Request();
$_POST['age'] = 10;
$ret = $task->validate($request, 'age');
但是,当我通过“php test.php”运行它时,会出现以下错误:

PHP Fatal error:  Uncaught exception 'Phalcon\Http\Request\Exception' with message 'A    dependency injection object is required to access the 'filter' service' in test.php:<line with trim in it>
PHP致命错误:未捕获异常“Phalcon\Http\Request\exception”,消息为“需要依赖项注入对象才能访问test.PHP中的“filter”服务”:

我不太确定我在这里哪里出错了。我读了文件,似乎这是实现我所追求的最简单的方法。如果有人有什么建议,我很乐意听听

您应该创建cli.php文件(cli引导),如所述。然后,您应该创建任务类,如所述。然后您可以运行它:

php cli.php task_name action_name