Laravel - 向php artisan传递参数

时间:2014-11-07 16:22:11

标签: php laravel artisan

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

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

1 个答案:

答案 0 :(得分: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);