Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel artisan命令行_Php_Laravel_Laravel 4_Command Line Interface - Fatal编程技术网

Php Laravel artisan命令行

Php Laravel artisan命令行,php,laravel,laravel-4,command-line-interface,Php,Laravel,Laravel 4,Command Line Interface,我正在使用Laravel4.1和artisan工具为我们的网站开发一些cli脚本。 这些脚本将通过cron作业在后台运行 我遇到了一个bug/特性,我想知道是否有其他人遇到过这个问题,或者知道如何克服这个问题 说明: 在artisan.php下的start文件夹中,我添加了以下命令: Artisan::add(new VinCommand); Artisan::add(new DealersCommand); Artisan::add(new ReportingCommand); Artisan

我正在使用Laravel4.1和artisan工具为我们的网站开发一些cli脚本。 这些脚本将通过cron作业在后台运行

我遇到了一个bug/特性,我想知道是否有其他人遇到过这个问题,或者知道如何克服这个问题

说明:

在artisan.php下的start文件夹中,我添加了以下命令:

Artisan::add(new VinCommand);
Artisan::add(new DealersCommand);
Artisan::add(new ReportingCommand);
Artisan::add(new AutoInventoryCommand);
Artisan::add(new VastLeadsCommand);
Artisan::add(new SendInventoryAlertsCommand);
Artisan::add(new JumpstartCapCommand); 
在app->commands下,我有我所有的命令。 在AutoInventoryCommand.php中,我在_构造方法中运行truncate表,但我发现truncate在每个cli命令上都被调用

例如VinCommand:

php artisan command:vin_command
还运行AutoInventoryCommands\uuuu构造方法,这会导致表始终被截断

不在构造方法中加入任何逻辑是常识吗

在其他一些命令中,我在_construct方法中设置了私有静态变量。这是个坏习惯。我是否应该有一个被调用的_init方法:

public function fire()
{
    $this->_init();
}
这将设置我的变量。如果我没有:

echo "Table Truncated \n"; 
在截断法中

这是一个bug/常识吗

我假设发生这种情况是因为在以下情况下调用了所有_构造:

Artisan::add();

被称为?

当然,它会在每个命令上运行。您的代码中有新的AutoInventoryCommand

如果您坚持将代码保留在构造函数中,而您不应该这样做,则可以使用resolve注册命令:

Artisan::resolve('AutoInventoryCommand');