18

私はhttp://laravel.com/docs/5.0/commandsに沿ってフォローしており、Laravel 5でartisanコマンドを作成できました.しかし、どうすればartisanコマンドを作成してパッケージにパッケージ化できますか?

4

2 に答える 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 に答える