私はhttp://laravel.com/docs/5.0/commandsに沿ってフォローしており、Laravel 5でartisanコマンドを作成できました.しかし、どうすればartisanコマンドを作成してパッケージにパッケージ化できますか?
9460 次
2 に答える
2
laravel 5.6 ではとても簡単です。
クラスFooCommand、
<?php
namespace Vendor\Package\Commands;
use Illuminate\Console\Command;
class FooCommand extends Command {
protected $signature = 'foo:method';
protected $description = 'Command description';
public function __construct() {
parent::__construct();
}
public function handle() {
echo 'foo';
}
}
これはパッケージのサービスプロバイダーです。(ブート関数に $this->commands() 部分を追加するだけです)。
<?php
namespace Vendor\Package;
use Illuminate\Events\Dispatcher;
use Illuminate\Support\ServiceProvider;
class MyServiceProvider extends ServiceProvider {
public function boot(\Illuminate\Routing\Router $router) {
$this->commands([
\Vendor\Package\Commands\FooCommand ::class,
]);
}
}
これで、次のようにコマンドを呼び出すことができます
php 職人 foo:メソッド
これにより、コマンド ハンドル メソッドから「foo」がエコーされます。重要な部分は、パッケージ サービス プロバイダーのブート機能内のコマンド ファイルに正しい名前空間を与えることです。
于 2018-05-31T16:53:37.053 に答える