パッケージのコマンドを作成しています。
私のコンストラクタは次のとおりです。
public function __construct(\Artisan $artisan)
{
parent::__construct();
$this->artisan = $artisan;
}
$artisan
もちろん、保護されたプロパティが存在します。
私のサービス プロバイダーregister()
の方法では、コマンドを登録する方法をいくつか試しました。
初め:
$this->app['custom.command'] = $this->app->share(function ($app)
{
return new CustomCommand(new \Artisan);
});
$this->commands('custom.command');
2番:
$this->app['custom.command'] = $this->app->share(function ($app)
{
return $app->make('CustomCommand');
});
$this->commands('custom.command');
通常、動作するはずです。しかし、コマンドを実行すると、メソッドCall to undefined method Illuminate\Support\Facades\Artisan::call()
で実行するとすぐに常にエラー メッセージが表示されます。$this->artisan->call('migrate')
fire()
\Artisan::call('migrate')
ただし、代わりに書くと、$this->artisan->call('migrate')
すべてが正常に機能します。
誰かが私が間違ったことを知っていますか?
前もって感謝します。