У меня есть набор консольных команд, зарегистрированных в app/Console/Kernel.php. Моя Kernel.php выглядит,Пользовательская консольная команда Laravel, вызывающая конструктор всех других настраиваемых команд
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
Commands\ConsoleCommand1::class,
Commands\ConsoleCommand2::class
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
*
* @return void
*/
protected function schedule(Schedule $schedule)
{
// Some code
}
}
Структура командной консоли класса выглядит,
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Dependancy;
class ConsoleCommand1 extends Command
{
protected $signature = ‘console_command_1’;
protected $description = ‘This is the description’;
private $dependancy;
public function __construct(Dependancy $dependancy)
{
parent::__construct();
$this->dependancy = $dependancy;
}
public function handle()
{
// Some code
}
}
Теперь проблема, когда я выполнить любую из команд консоли из списка, конструктор другой также получает исполнение с фактически выполненным.
Например, если я выполняю «php artisan console_command_1», конструктор «php artisan console_command_1» и «php artisan console_command_2» запускается и наоборот. Я действительно хочу, чтобы был вызван только конструктор «фактически выполненной команды artisan».
Разве это консольная консоль Laravel, или я что-то не так? Любая помощь высоко ценится.
Действительно интересный материал. Спасибо за четкий ответ @Bogdan. –
Забавно, что в документах показан пример с конструктором, но нет предупреждения о его использовании. Похоже, что подписи должны быть перенесены в ядро в массиве. – jminkler
Итак, если есть 10 консольных командных классов, laravel будет продолжать создавать классы? Потому что в моем случае, каждые 10 секунд я получаю журналы от конструкторов команд. Забавно, что я это заметил. – Farveaz