Tìm Hiểu Về Laravel Generator

Laravel Generator là gói thư viện được sử dụng cho Laravel Framework dùng để hỗ trợ việc tự động tạo ra các file code dựa trên mẫu có sẵn. Trong bài viết nay chúng ta sẽ cùng nhau tìm hiểu cách cài đặt và sử dụng công cụ này trên phiên bản 4.2 của Laravel. Bài viết giả định rằng bạn đã cài đặt Laravel framework trên máy tính của mình.

Cài Đặt

Để cài đặt Laravel Generator bạn thêm đoạn mã sau vào trong file composor.json:

"require-dev": {
    "way/generators": "~2.0"
}

Tiếp theo, mở terminal và đi tới thư mục của dự án và chạy câu lệnh sau:

$ composer update --dev

Tiếp theo trong file app/config/app.php bạn thêm chuỗi sau vào danh sách của mảng service provider:

'Way\Generators\GeneratorsServiceProvider'

Tới đây bạn đã hoàn tất việc cài đặt công cụ này. Để kiểm tra lại, bạn có thể chạy câu lệnh dưới đây trên terminal:

$ php artisan | grep generate

Nếu thực hiện đúng theo hướng dẫn bạn sẽ thấy kết quả như sau:

  generate:controller          Generate a controller
  generate:migration           Generate a new migration
  generate:model               Generate a model
  generate:pivot               Generate a pivot table
  generate:publish-templates   Copy generator templates for user modification
  generate:resource            Generate a new resource
  generate:scaffold            Scaffold a new resource (with boilerplate)
  generate:seed                Generate a database table seeder
  generate:view                Generate a view
  key:generate                 Set the application key

Tạo Migration

Để tạo database migration sử dụng Laravel Generator bạn chạy câu lệnh với cấu trúc sau:

$ php artisan generate:migration create_[name]_table

Thay giá trị của [name] bằng tên bảng bạn muốn thêm vào database. Ví dụ:

php artisan generate:migration create_posts_table

Kết thúc câu lênh trên bạn sẽ thấy một file mới được tạo ra trong thư mục app/database/migrations với nội dung như sau:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;

class CreatePostsTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function(Blueprint $table) {
            $table->increments('id');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('posts');
    }

}

Ở trên đây bạn thấy có 2 câu lệnh trong phương thức up dùng để định nghĩa trường id và các trường created_atupdated_at như sau:

$table->increments('id');
$table->timestamps();

Nếu bạn muốn thêm các trường khác ngoài các trường trên bạn có thể thực hiện bằng việc thêm tùy chọn fields cho câu lệnh chạy trên terminal. Xóa file tạo ở trên và chạy câu lệnh như dưới đây trên terminal:

$ php artisan generate:migration create_posts_table --fields="title:string, body:text"

Câu lệnh trên sẽ thêm vào trường title với kiểu dữ liệu là varchar(255) và trường body với kiểu dữ liệu là text. Nhìn vào phương thức up lúc này bạn sẽ thấy nội dung như dưới đây:

Schema::create('posts', function(Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->text('body');
    $table->timestamps();
});

Tạo Model

Việc tạo model sử dụng Laravel Generator khá đơn giản. Ví dụ sau tạo một model với tên là Post:

$ php artisan generate:model Post

Kết thúc câu lệnh trên bạn sẽ thấy một file Post.php trong thư mục app/models với nội dung sau:

<?php

class Post extends \Eloquent {

}

Tạo View

Tương tự như tạo model:

$ php artisan generate:view home.index

Câu lệnh trên sẽ tạo ra thư mục home trong thư mục app/views/ đồng thời sau đó sẽ tạo ra file app/views/home/index.php bên trong đó.

Tạo Controller

Câu lệnh sau sẽ tạo controller PostsController.php trong thư mục app/controllers

$ php artisan generate:controller PostsController

Bạn chú ý chúng ta không để phần mở rộng .php trong tên controller trong câu lệnh trên mà chỉ để tên của controller đó nghĩa là để PostsController thay vì PostsController.php.

Tạo Seed

Để tạo seed dữ liệu cho bảng users trên cơ sở dữ liệu, chúng ta sử dụng câu lệnh sau:

$ php artisan generate:seed users

Câu lệnh trên sẽ sinh ra một file UsersSeederTable.php trong thư mục app/database/seeds/ với nội dung như sau:

<?php

// Composer: "fzaninotto/faker": "v1.3.0"
use Faker\Factory as Faker;

class UsersTableSeeder extends Seeder {

    public function run()
    {
        $faker = Faker::create();

        foreach(range(1, 10) as $index)
        {
            User::create([

            ]);
        }
    }

}

Và trước khi có thể seed được dữ liệu bạn cần phải thêm gói package có tên là faker vào trong phần require trong file composer.json:

"fzaninotto/faker": "v1.3.0"

Sau đó cập nhật faker sử dụng câu lệnh:

$ composer update

Và sau khi composer kết thúc việc tải faker về máy bạn chạy câu lệnh sau để seed dữ liệu:

$ php artisan db:seed

Trên đây tôi đã giới thiệu tới bạn những chức năng cơ bản và thường hay sử dụng nhất của Laravel Generator bạn cũng có thể tìm hiểu chi tiết hơn về công cụ này ở địa chỉ sau

Thêm Bình Luận: