Laravel – передать аргументы в php artisan down

У меня есть интересная проблема, которую я хотел бы попробовать и решить. Laravel имеет встроенный «режим обслуживания», который можно активировать, вызвав php artisan down в корневую папку приложения. В app / start / global.php есть параметр, где вы можете назначить представление или ответ, который он делает. В моем приложении я это делаю:

 App::down(function() { // ETA Format: YYYY-MM-DD HH-MM-SS. Leave as "" to pass indeterminate time. return View::make("maintenance", array("code" => 503, "message" => "Service Unavailable", "eta" => "2014-11-07 13:30:00")); }); 

То, что это делает, показывает хороший, чистый экран «Мы вернемся», с сообщением о состоянии и приблизительным временем до завершения. Обратите внимание, что я жестко закодировал некоторые параметры, которые передаются в представление:

 code -> The http status code I want displayed message -> A message about the nature of the disruption eta -> A timestamp of the estimated completion time 

Мне интересно, есть ли способ изменить php artisan down где я могу передать ему некоторые параметры? Например, я хочу попробовать что-то вроде этого:

 php artisan down --eta="2014-11-07 13:30:00" --code="503" 

Поэтому мне не нужно вручную кодировать эти параметры каждый раз, когда я помещаю приложение в режим обслуживания. Я прочитал документы о Laravel относительно создания команд artisan, но нет документации по изменению существующих команд или их дублированию и добавлению функциональности.

Если у кого-нибудь есть понимание этого, пожалуйста, дайте мне знать.

Попробуйте создать новую команду, которую вы вызываете (например, app: down), которая записывает эти параметры в файл, затем вызывает внутреннюю команду laravel, например

 public function fire() { $data = json_encode($this->option()); file_put_contents('/tmp/down.txt', $data); $this->call('down'); } 

Затем вы можете выбрать их в коде просмотра …

  $data = json_decode(file_get_contents('/tmp/down.txt'), true); return View::make('maintenance', $data);