Laravel - Artisan命令学习

本文以laravel5.4为例,建议刚开始学习Laravel框架的朋友先不使用Artisan进行一次项目开发。

简介

ArtisanLaravel 内置的命令行接口。它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动。利用它,我们可以快速的新建 ControllerModel等类。

  • 查看所有artisan命令

php artisan list

  • 查看当前laravel的具体版本

php artisan --version

  • 应用进入维护模式

php artisan down

  • 应用推出维护模式

php artisan up

下面是开发中更常用更重要的部分:

  • 创建RESTful资源的控制器和方法

php artisan make:controller UserController

  • 生成表文件

php artisan make:migration create_article_table

  • 执行迁移,创建数据库表结构

php artisan migrate

  • 执行单文件数据填充

php artisan db:seed --class=AuthorTableSeeder

  • 项目开发中超实用的命令(回滚所有迁移并重新迁移生成种子):

php artisan migrate:refresh --seed

  • 创建 Eloquent 模型类:

php artisan make:model User

  • 创建一个新的服务提供者类

php artisan make:provider name

  • 创建一个新的表单请求类

php artisan make:request name

更多用法

  • 建议创建migration迁移文件时追加--create=articles参数,这样会使新的迁移文件添加默认格式。

  • 数据迁移表生成后,在database\migrations目录存在着2016_09_10_020228_create_article_table.php。该文件只有迁移前编写的up方法和删除或者覆盖数据表使用回滚时的down方法,我们只需修改up方法:

  • LaravelModel 对应的表名是其英文单词的复数形式(内部使用了英文词语的单复数映射),例如 UserModel 在数据库中的体现就是users表。接下来让我们把 PHP 代码变成真实的 MySQL 中的数据表,运行命令:php artisan migrate

  • 执行成功后,articles 表已经出现在数据库里了。articles里字段名可以改为你想要的名字,建议统一命名。

  • 完成后数据库里还会多了个 migrations 表,用来记录数据库迁移信息,并且 database/migrations/ 目录下记录着采用 RoR 思想诞生的迁移文件,这些文件不允许删除,否则不利于交付和迭代。

Seeder

  • database/seeds/下则对应相应的数据库改动信息,包含数据。
  • Seeder 解决的是我们在开发 web 应用的时候,需要手动向数据库中填入假数据的繁琐低效问题。运行以下命令创建 Seeder 文件:

php artisan make:seeder
ArticleSeeder

我们会发现database/seeds/里多了一个文件 ArticleSeeder.php,修改此文件中的 run 函数为:

public function run() {
    DB::table('articles')->delete();
    for ($i=0; $i < 10; $i++) {
        \App\Article::create([ 'title' => 'Title '.$i, 'body' => 'Body '.$i, 'user_id' => 1, ]);
    }
}

上面代码中的 \App\Article 为命名空间绝对引用。接下来我们把ArticleSeeder注册到系统内。修改database/seeds/DatabaseSeeder.php
中的 run 函数为:

public function run() {
    $this->call(ArticleSeeder::class);
}

由于database目录没有像app 目录那样被composer注册为psr-4自动加载,采用的是psr-0 classmap方式,所以我们还需要运行以下命令把ArticleSeeder.php加入自动加载系统,避免找不到类的错误:

composer dump-autoload

然后执行 seed:

php artisan db:seedSeeded: ArticleSeeder

这时候刷新一下数据库中的 articles 表,会发现已经被插入了 10 行假数据。

参考:

1、Laravel 5.1 LTS 速查表
https://cs.phphub.org/#artisan

2、Laravel 5.0 中文文档:Artisan 命令行接口
http://laravel-china.org/docs/5.0/artisan

php artisan key:generate重新生成秘钥

php artisan make:controller UserController

3、2016 版 Laravel 系列入门教程(一)
https://github.com/johnlui/Learn-Laravel-5/issues/4

你可能感兴趣的:(Laravel - Artisan命令学习)