Я пытаюсь запустить любое действие контроллера из оболочки.
Код ниже работает
$object = new TestController();
$object->index();
Но нижеприведенный код не работает
// planed to change $controller dynamically from command line arguments
$controller = "TestController";
$object = new $controller();
$object->index();
Я получаю сообщение об ошибке: класс «TestController» не найден.
Ниже приведен мой полный код командного файла
<?php
namespace App\Command;
use Cake\Console\Arguments;
use Cake\Console\Command;
use Cake\Console\ConsoleIo;
use Cake\Console\ConsoleOptionParser;
use App\Controller\TestController;
class ControllerCommand extends Command
{
protected function buildOptionParser(ConsoleOptionParser $parser)
{
$parser
->addArgument('controllername', [
'help' => 'controllername',
'required' => true
])
->addArgument('actionname', [
'help' => 'actionname',
'required' => true
]);
return $parser;
}
public function execute(Arguments $args, ConsoleIo $io)
{
$controller=$args->getArgument('controllername');
$action=$args->getArgument('actionname');
//$object = new TestController();
$controller = "TestController";
$object = new $controller();
$object->index();
}
}