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 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:
'WayGeneratorsGeneratorsServiceProvider'
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 IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; 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 FakerFactory 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