为什么我不能在artisan命令类的__construct方法中访问/使用$ this-> option('debug')?

时间:2019-05-15 08:11:41

标签: php laravel symfony

我正在尝试使用laravel中的--debug option创建工匠命令。要在整个类范围内使用调试开关,请使用__construct并将其分配给类属性。

    public function __construct(){
        parent::__construct();

        $this->debug = $this->option('debug');
    } 

在handle方法中使用$ this-> option('debug')时没有问题。但是当我在__construct中使用它时,我得到了

  

在null {“ exception”:“ [object]上调用成员函数getOption()   (Symfony \ Component \ Debug \ Exception \ FatalThrowableError(代码:0):   在以下位置调用成员函数getOption()的null:   /Users/user/Sites/app/vendor/laravel/framework/src/Illuminate/Console/Command.php:310)

我不确定,但是看起来好像option()在构造时还没有准备好。检查了文档,但找不到任何东西。有没有人对此有所了解或如何实现的?

1 个答案:

答案 0 :(得分:3)

似乎您无法访问任何InputInterface's methods,因为此时they're just not initialised