Так что рассмотрите поставщика услуг, да, я знаю, что я регистрирую эту команду в двух местах, но просто дайте мне немного времени, чтобы объяснить:
<?php
namespace App\Modules\Core\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Support\DeferrableProvider;
use Illuminate\Foundation\AliasLoader;
use App\Modules\Core\Handlers\RedirectHandler;
use App\Modules\Core\Console\Commands\CreateAdminUser;
use App\Modules\Core\Values\IsMedicalRecordEmpty;
class CoreProvider extends ServiceProvider
{
protected $commands = [
CreateAdminUser::class,
];
/**
* Register services.
*
* @return void
*/
public function register()
{
$this->app->bind(RedirectHandler::class, function($app) {
return new RedirectHandler();
});
$this->app->bind(IsMedicalRecordEmpty::class, function($app) {
return new IsMedicalRecordEmpty();
});
}
public function register() {
$this->commands($this->commands);
}
/**
* Bootstrap services.
*
* @return void
*/
public function boot()
{
if ($this->app->runningInConsole()) {
$this->commands([
CreateAdminUser::class,
]);
}
}
}
Итак, как уже было сказано, мы видим, что я регистрируюсь эта команда в двух местах, потому что я пытаюсь выяснить, почему при вызове php artisan
команда не отображается, она отображается только в том случае, если я зарегистрировал ее в app\Console\Kernel
, а потому что я пытаюсь использовать модульный подход к кодовая база, я хочу зарегистрировать его в своем сервис-провайдере, для которого зарегистрировано следующее:
'providers' => [
...
/**
* Module Related Providers
*/
App\Modules\Core\Providers\CoreProvider::class,
...
],
Я правильно регистрирую провайдера, я (да, я знаю, мне не нужно регистрировать команду дважды ) зарегистрируйте команду так, как это объяснил стек, так или иначе, теоретически это должно работать.
Но, увы, команда не отображается при запуске php artisan
. На всех.
Команда проста:
<?php
namespace App\Modules\Core\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
use Illuminate\Auth\Events\Verified;
use App\Modules\Core\Users\Mail\GeneratedAdmin;
use App\Modules\Core\Users\Models\User;
use App\Modules\Core\Users\Services\RegisterUserService;
class CreateAdminUser extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'create:admin {first_name} {last_name} {email}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Create one admin.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
// do stuff here ...
}
}
Есть идеи?