Vì Laravel 5, tôi quan tâm đến cách đăng ký và sử dụng lệnh giao diện điều khiển từ gói trong Laravel 5.Cách đăng ký lệnh console từ gói trong Laravel 5?
Như trong báo cáo sơ đồ, hãy thêm gói của tôi để tự động tải và tạo dịch vụ nhà cung cấp
<?php namespace Goodvin\EternalTree;
use Console\InstallCommand;
use Illuminate\Support\ServiceProvider;
class EternalTreeServiceProvider extends ServiceProvider
{
public function boot()
{
}
public function register()
{
$this->registerCommands();
}
protected function registerCommands()
{
$this->registerInstallCommand();
}
protected function registerInstallCommand()
{
$this->app->singleton('command.eternaltree.install', function($app) {
return new InstallCommand();
});
}
public function provides()
{
return [
'command.eternaltree.install'
];
}
}
My InstallCommand.php kịch bản lưu trữ trong/src/Console
<?php namespace Goodvin\EternalTree\Console;
use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
class InstallCommand extends Command {
protected $name = 'install:eternaltree';
protected $description = 'Command for EternalTree migration & model install.';
public function __construct()
{
parent::__construct();
}
public function fire()
{
$this->info('Command eternaltree:install fire');
}
}
tôi đăng ký cung cấp dịch vụ trong app.php & thực hiện tự đổ autoload. Nhưng khi tôi cố gắng để thực hiện
php artisan eternaltree:install
nó chỉ cho tôi
[InvalidArgumentException] There are no commands defined in the "eternaltree" namespace.
Tôi nghĩ rằng lệnh của tôi không được đăng ký bởi nhà cung cấp dịch vụ, bởi vì danh sách php thợ thủ công không hiển thị lệnh của tôi. Bất cứ ai có thể giải thích cho tôi những gì là đúng cách để đăng ký các lệnh trong gói riêng trong Laravel 5?
Did như Bạn gợi ý: - MyServiceProvider thực hiện kéo dài ServiceProvider sau đó '' 'public function đăng ký() { // $ this-> lệnh ([ LaravelTypesController :: lớp ]); } '' ' - LaravelTypesController mở rộng Lệnh với $ signature, $ description và phương thức xử lý, nhưng vẫn không thấy lệnh trên php artisan | grep –