如何使用 Laravel 创建自定义命令并生成相关文件示例?

更新于
2026-07-26 17:58:34
23阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计447个文字,预计阅读时间需要2分钟。

以创建`service`层为例子:

1. 执行命令:`php artisan make:command ServiceMakeCommand`

2.在`app\Console\Commands`下会多出一个`ServiceMakeCommand.php`文件。

3.修改其内容为以下内容(注意:1. 承继了GeneratorCommand类):

php

namespace App\Console\Commands;

use Illuminate\Console\GeneratorCommand;

class ServiceMakeCommand extends GeneratorCommand{ protected $name='make:service';

protected $description='Create a new service class';

protected function getDefaultNamespace(): string { return $this->laravel->getNamespace(); }

protected function getStub(): string { return __DIR__ . '/stubs/service.stub'; }

protected function replace(array $replacements) { $replacements['CLASS_NAME']=$this->getNameInput(); return parent::replace($replacements); }}

以创建service层为例子

1、执行命令

php artisan make:command ServiceMakeCommand

2、在app\Console\Commands 下就会多出一个 ServiceMakeCommand.php 文件 ,更改其内容为一下内容 ( 注意:

1、承了GeneratorCommand类,

2、protected $signature = 'make:service {name}'; 中{name}必须要有

<?php namespace App\Console\Commands; use Illuminate\Console\GeneratorCommand; class ServiceMakeCommand extends GeneratorCommand { /** * The name and signature of the console command. * * @var string */ protected $signature = 'make:service {name}'; /** * The console command description. * * @var string */ protected $description = 'Create a service'; /** * Get the stub file for the generator. * * @return string */ protected function getStub() { return __DIR__.'/stubs/service.stub'; } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace($rootNamespace) { return $rootNamespace.'\Services'; } }

3、创建模版

在 app\Console\Commands\ 下创建stubs文件夹 ,并创建文件service.stub,其内容为

<?php namespace DummyNamespace; class DummyClass { public function __construct() { parent::__construct(); } }

4、现在就已经完成了,运行 php artisan list,就可以看到

执行 php artisan make:service BaseService 就有BaseService.php 文件了

以上这篇Laravel 自定命令以及生成文件的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

标签:例子

本文共计447个文字,预计阅读时间需要2分钟。

以创建`service`层为例子:

1. 执行命令:`php artisan make:command ServiceMakeCommand`

2.在`app\Console\Commands`下会多出一个`ServiceMakeCommand.php`文件。

3.修改其内容为以下内容(注意:1. 承继了GeneratorCommand类):

php

namespace App\Console\Commands;

use Illuminate\Console\GeneratorCommand;

class ServiceMakeCommand extends GeneratorCommand{ protected $name='make:service';

protected $description='Create a new service class';

protected function getDefaultNamespace(): string { return $this->laravel->getNamespace(); }

protected function getStub(): string { return __DIR__ . '/stubs/service.stub'; }

protected function replace(array $replacements) { $replacements['CLASS_NAME']=$this->getNameInput(); return parent::replace($replacements); }}

以创建service层为例子

1、执行命令

php artisan make:command ServiceMakeCommand

2、在app\Console\Commands 下就会多出一个 ServiceMakeCommand.php 文件 ,更改其内容为一下内容 ( 注意:

1、承了GeneratorCommand类,

2、protected $signature = 'make:service {name}'; 中{name}必须要有

<?php namespace App\Console\Commands; use Illuminate\Console\GeneratorCommand; class ServiceMakeCommand extends GeneratorCommand { /** * The name and signature of the console command. * * @var string */ protected $signature = 'make:service {name}'; /** * The console command description. * * @var string */ protected $description = 'Create a service'; /** * Get the stub file for the generator. * * @return string */ protected function getStub() { return __DIR__.'/stubs/service.stub'; } /** * Get the default namespace for the class. * * @param string $rootNamespace * @return string */ protected function getDefaultNamespace($rootNamespace) { return $rootNamespace.'\Services'; } }

3、创建模版

在 app\Console\Commands\ 下创建stubs文件夹 ,并创建文件service.stub,其内容为

<?php namespace DummyNamespace; class DummyClass { public function __construct() { parent::__construct(); } }

4、现在就已经完成了,运行 php artisan list,就可以看到

执行 php artisan make:service BaseService 就有BaseService.php 文件了

以上这篇Laravel 自定命令以及生成文件的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

标签:例子