0

我有一个有趣的问题想尝试解决。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 上关于创建工匠命令的文档,但是没有关于修改现有命令或复制它们和添加功能的文档。

如果有人对此有任何见解,请告诉我。

4

1 回答 1

1

尝试创建一个您将调用的新命令(例如 app:down),将这些选项写入文件,然后在内部调用 laravel down 命令,例如

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);
于 2014-11-07T16:31:30.340 回答