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_at
và updated_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