Zend Framework 2에서 CLI 명령을 개발했습니다. 컨트롤러에서 실행하고 싶습니다. Zend Framework 2에서 이것을 어떻게 할 수 있습니까?젠드 프레임 워크 2의 컨트롤러에서 콘솔 명령을 실행하는 방법은 무엇입니까?
3
A
답변
-1
당신은 이런 식으로 작업을 수행 할 수 있습니다
$cmd = "php filenameToRun.php";
shell_exec($cmd);
또는 같은를 :
$cmd = "pwd";
shell_exec($cmd);
또는 같은를 :
는$cmd = "mkdir myNewFolder";
shell_exec($cmd);
당신은 괄호에 넣어 모든 일반 명령이 작동합니다.
+0
영어가 제 첫 번째 언어이므로 직접 수정할 수 있습니다. –
0
사용자가 염두에두고있는 특정 CLI ConsoleController로 요청을 전달해야합니다. Forward
플러그인을 사용하여이 작업을 수행 할 수 있습니다. 내가 첫 번째 인수에서 ConsoleController::class
전화
class HttpController extends AbstractActionController
{
public function indexAction()
{
// do some stuff
$response = $this->forward()->dispatch(ConsoleController::class, ['action' => 'process']);
// do stuff with your response | array
$bar = $response['foo'];
}
}
class ConsoleController extends AbstractActionController
{
public function processAction()
{
// do stuff
return ['foo' => 'bar'];
}
}
참고 : 예를 들면. 구성 내에서 컨트롤러가 등록되는 방식을 일치시켜야합니다. 발송은 등록 된 컨트롤러 보이는 $this->forward()->dispatch('ConsoleController', ['action' => 'process'])
를 호출하면, 또한 유효한 옵션입니다
return [
'controllers' => [
'factories' => [
HttpController::class => InvokableFactory::class,
ConsoleController::class => InvokableFactory::class,
],
'aliases' => [
'ConsoleController' => ConsoleController::class,
],
],
];
참고.
콘솔 경로를 정의 했습니까? 추가 했습니까? 귀하의 컨트롤러와 액션 이름은 무엇입니까? 당신의 행동에 매개 변수를 전달합니까? –