【PHP】php artisan 常见指令
Artisan是什么?
Artisan是一个命令行工具,它是Laravel框架的一部分,它允许开发者通过命令行界面执行各种操作,从创建数据库表到生成模型、控制器和视图等等。Artisan的一大优势是可以轻松地创建自定义命令,开发者可以通过编写自己的Artisan命令来执行自定义任务,以满足特定需求,这使得Artisan在Laravel开发中非常灵活和强大。
常用的Artisan指令及其作用
运行 php artisan指令(也可以是php artisan list 或 php artisan -v指令),可以查看所有的artisan指令。以下列出常见的artisan指令。
php artisan make:model userModel 这个命令用于生成一个新的模型类。
php artisan make:controller userController 这个命令用于创建一个新的控制器类。
php artisan help make:controller 这个命令用于列出命令的帮助内容。
php artisan make:controller userController –resource 这个命令用于生成RESTful API风格的控制器,创建一个包含了7个RESTful方法(index、create、store、show、edit、update、destroy)的控制器。
php artisan make:migration create_user_table 这个命令用于创建一个新的数据库迁移。上述命令将在database/migrations目录下生成一个名为“xxxx_xx_xx_xxxxxx_create_users_table”的迁移文件。在迁移文件中,您可以定义User表的结构与字段。
public function up() { Schema::create('users',function(Blueprint $table){ $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
php artisan migrate 这个命令用于执行所有尚未执行的数据库迁移。执行此命令,将迁移应用到数据库中。
php artisan make:seeder UsersTableSeeder ,创建一个Seeder,其中UsersTableSeeder是Seeder的名称。执行以上命令后,Laravel会在/database/seeds目录下生成一个UsersTableSeeder.php文件,该文件是一个类,可以在其中添加插入数据的操作。
php artisan db:seed 运行Seeder。此命令将执行/database/seeds目录下的所有Seeder类,并将记录插入数据库中。
php artisan route:list 这个命令用于列出应用程序中定义的所有路由。
自定义指令
Artisan除了默认指令外,还可以提供自定义指令。
自定义指令保存在 app/Console/Commands 目录中,在第一次成功运行 php artisan make:command 指令后创建,如 php artisan make:command SendEmails。
生成命令后,请先修改类文件中的 signature 和 description 属性以便你在使用 Artisan list 命令时清楚的知道该命令的用法。在 handle 方法中编写执行命令的业务逻辑。下面是官网的示例用法:
<?php namespace App\Console\Commands; use App\Models\User; use App\Support\DripEmailer; use Illuminate\Console\Command; class SendEmails extends Command { /** * 命令名称及签名 * * @var string */ protected $signature = 'email:send {user}'; /** * 命令描述 * * @var string */ protected $description = 'Send drip e-mails to a user'; /** * 创建命令 * * @return void */ public function __construct() { parent::__construct(); } /** * 执行命令 * * @param \App\Support\DripEmailer $drip * @return mixed */ public function handle(DripEmailer $drip) { $drip->send(User::find($this->argument('user'))); } }
关于自定义指令的更详细用法,如默认参数、选填参数、输入数组、交互式输入、输入描述、编写输出、注册等,请查阅更多的网络资料。