Я настроил консоль Symfony в пользовательском приложении php (не в приложении Symfony, просто использую компонент вне Symfony) и создал файл app
в моем корневом каталоге
#!/usr/bin/env php
<?php
// Include framework's dependencies through composer's autoload feature
require __DIR__ . '/vendor/autoload.php';
$application = new Symfony\Component\Console\Application();
// ... register commands
$application->add(new TestCommand());
$application->run();
Это тестовый класс, который я настроил
<?php
namespace Mvc\Commands;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class TestCommand extends Command
{
/**
* The name of the command (the part after "bin/console")
*
* @var string
*/
protected $command_name = 'app:test';
/**
* The description of the command (the part after "bin/console")
*
* @var string
*/
protected $command_description = "Try to echo Hello World for testing if it works.";
protected function configure()
{
$this->setName($this->command_name)
->setDescription($this->command_description);
}
protected function execute(InputInterface $input, OutputInterface $output)
{
$name = $input->getArgument($this->command_argument_name);
}
}
Как я могу создавать команды для генерации классов различного типа, например, как это делает Laravel для генерации контроллеров, моделей и т. Д. (php artisan make:controller TestController
и т. Д.)?