企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
我们在命令行中经常会用php artisan 命令,我们也可以自定义 首先我们创建 `php artisan make:command ShowGreet` 在 `app\console\commands\` 下面有这个文件ShowGreet.php然后我们编辑它 ~~~ //把执行方式protected $signature = 'command:name';这行改为 protected $signature = 'laravist:hello'; //然后下面有handle方法,我们编辑它 public function handle() { $this->info('hello my boby'); } ~~~ 这样还不行我们要在 `App\Console\Kernel.php` 注册它 ~~~ class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ \App\Console\Commands\Inspire::class, \App\Console\Commands\ShowGreet::class, ]; //---- ~~~ 然后我们在命令行中运行 `php artisan laravist:hello` 会输出上面写的 `hello my boby` 有时候我们输php artisan 要带参数我们可以这样写 在 `app\console\commands\ShowGreet.php` 中 ~~~ protected $signature = 'laravist:hello {name}'; public function handle() { //这边的argument('name')就是上面的name $this->info('hello my boby '.$this->argument('name')); } ~~~ 如果想变量可有可无就加个 `?` 就可以了 ~~~ protected $signature = 'laravist:hello {name?}'; 如果想给个默认值就加个='默认值' 就可以了 protected $signature = 'laravist:hello {name=jdxia}'; ~~~ handle中还有很多其他的 比如显示出来的提示可以有不同的颜色,本质上还是用了样式 ~~~ public function handle() { $this->info('hello'); $this->error('hello'); $this->line("<info>hello</info>"); //绿色字体 } ~~~ 比如来一个滚动条 ~~~ public function handle() { $pb = $this->output->createProgressBar(100); //来不断的让他充满 foreach (range(1,100) as $i) { $pb->advance(1); usleep(100000); } $pb->finish(); } ~~~ 还可以和控制台做交互 ~~~ public function handle() { $words = $this->ask("say what?"); $this->line("say: $words"); } ~~~ 还可以做判断 ~~~ public function handle() { if ($this->confirm("Yes or No")) { $words = "Yes"; } else { $words = "No"; } $this->line("say : $words"); } ~~~ 还可以做选择 ~~~ public function handle() { $words = $this->choice("One or Two or Three", ['One', 'Two', 'Three']); $this->line("say: $words"); } ~~~