You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.3 KiB
PHP
33 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace jrosset\Tests;
|
|
|
|
use jrosset\CliProgram\AutoDiscovery\AutoDiscoveryDirectory;
|
|
use jrosset\CliProgram\AutoDiscovery\TAutoDiscoveryApplication;
|
|
use jrosset\CliProgram\AutoPrefix\AutoPrefixNamespaceManager;
|
|
use jrosset\CliProgram\Monolog\ConsoleOutputWithMonolog;
|
|
use Monolog\Handler\StreamHandler;
|
|
use Monolog\Logger;
|
|
use Symfony\Component\Console\Input\InputInterface;
|
|
use Symfony\Component\Console\Output\OutputInterface;
|
|
|
|
class Application extends \Symfony\Component\Console\Application {
|
|
use TAutoDiscoveryApplication;
|
|
|
|
public function __construct (string $name = 'UNKNOWN', string $version = 'UNKNOWN') {
|
|
parent::__construct($name, $version);
|
|
|
|
$spot = new AutoDiscoveryDirectory(__DIR__ . '/Commands');
|
|
$spot->getAutoPrefixManagers()->prepend(new AutoPrefixNamespaceManager('\\jrosset\\Tests\\Commands', 'test'));
|
|
|
|
$this->getAutoDiscoverySpots()->prepend($spot);
|
|
$this->addAutoDiscoveredCommands();
|
|
}
|
|
|
|
public function run (InputInterface $input = null, OutputInterface $output = null): int {
|
|
$logger = new Logger(__CLASS__);
|
|
$logger->pushHandler(new StreamHandler(__DIR__ . '/run.log', Logger::DEBUG));
|
|
|
|
return parent::run($input, $output ?? new ConsoleOutputWithMonolog($logger));
|
|
}
|
|
} |