陷入laravel 4工匠指挥

时间:2014-02-22 01:13:04

标签: php laravel laravel-4

有没有办法轻松挂钩工匠命令?我想要完成的是每次执行php artisan migrate命令时都会执行一段代码。

3 个答案:

答案 0 :(得分:2)

只需在代码中的某个位置添加一个侦听器(即使在app / start / artisan.php的顶部)也可以监听'artisan.start'事件。

Event::listen('artisan.start', function($app)
{
    // $app is instance of Illuminate\Console\Application
    // since the $app hasn't figured the command yet you'll
    // have to do it yourself to check if it's the migrate command
});

答案 1 :(得分:2)

您可以尝试这样的事情(您可以将其放在filters.php文件中):

Event::listen('artisan.start', function($app) {
    if( isset($_SERVER['argv'][1]) && $_SERVER['argv'][1] == 'migrate' ) {
        // do something because it's migrate command
    }
});

答案 2 :(得分:0)

您可以扩展Schema Builder外观并覆盖构建函数,如下所示:

protected function build(Blueprint $blueprint)
{
      your_function();
      Parent::build($blueprint);
}

但是,使用--pretend选项进行迁移时,不会调用您的函数。我不知道有任何内置的方法可以在不扩展Schema Builder或Migrator类的情况下挂钩迁移。