创建
要创建自定义的 Artisan 命令,你可以使用 make:command
Artisan 命令来生成一个新的命令类文件。运行以下命令可以创建一个新的命令类:
php artisan make:command Kaysar
这将在 app/Console/Commands
目录下生成一个名为 CustomCommand.php
的文件。你可以在这个文件中定义你的自定义命令的逻辑。
在 CustomCommand.php
文件中,你需要定义 handle
方法,它包含了命令的实际执行逻辑。你可以在这个方法中编写你的代码,来完成你想要的功能。
完成命令的编写后,你需要将命令注册到 Laravel 的命令行工具中。为此,你需要编辑 app/Console/Kernel.php
文件,在 commands
数组中添加你的命令类的路径,例如:
protected $commands = [
\App\Console\Commands\Kaysar::class,
];
一旦你完成了这些步骤,你就可以在命令行中使用你的自定义命令了。运行以下命令可以查看所有可用的 Artisan 命令:
php artisan list
你将在列表中看到你的自定义命令。要运行你的命令,可以使用 php artisan
命令,后面跟上你的命令名称,例如:
php artisan Kaysar:command
这样就会执行你定义的自定义命令。
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class Kaysar extends Command
{
protected $signature = 'kaysar:command';
protected $description = 'This is a custom command.';
public function handle()
{
$this->info('Hello, this is a custom command!');
}
}
创建控制器和模型
class Kaysar extends Command
{
protected $signature = 'kaysar:command {name : The name of the controller}';
protected $description = 'This is a kaysar command.';
public function handle()
{
$controllerName = $this->argument('name');
Artisan::call('make:controller', [
'name' => $controllerName,//控制器名称
'--resource' => true, // 生成资源控制器
'--model' => 'YourModel', // 指定关联的模型
]);
$this->info('创建成功,控制器名是:' . $controllerName);
}
}