Giới thiệu package Laravel Generator
Bài đăng này đã không được cập nhật trong 6 năm
Giới thiệu
Chào các bạn, hôm nay mình sẽ giới thiệu đến các bạn một package rất bổ ích cho lập trình viên Laravel đó là Laravel Generator. Một công cụ rất hữu ích và giúp chúng ta có thể tiết kiệm được rất nhiều thời gian trong khi làm các chức năng đơn giản như CRUD, viết API, viết UnitTest. Chúng ta cùng tìm hiểu xem nó như thế nào nhé.
Cài đặt
Có rất nhiều cách để cài đặt Laravel Generator nhưng mình xin phép giới thiệu một cách phổ biến nhất để thêm package này vào dự án hiện tại của bạn.
Đầu tiên thêm các package sau vào file composer.json
"require": {
"infyomlabs/laravel-generator": "5.6.x-dev",
"laravelcollective/html": "^5.6.0",
"infyomlabs/adminlte-templates": "5.6.x-dev",
"doctrine/dbal": "~2.3"
}
Chạy composer update
để tải về các package trên.
Thêm các service provider vào file config\app.php
Collective\Html\HtmlServiceProvider::class,
Laracasts\Flash\FlashServiceProvider::class,
Prettus\Repository\Providers\RepositoryServiceProvider::class,
\InfyOm\Generator\InfyOmGeneratorServiceProvider::class,
\InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider::class,
Thêm alias vào mảng aliases trong file config\app.php
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
'Flash' => Laracasts\Flash\Flash::class,
Chạy dòng lệnh php artisan vendor:publish
Setup .env các thứ xong bây giờ ta muốn tạo các chức năng cơ bản của dòng lệnh php artisan make:auth
nhưng lại ghép được luôn với giao diện AdminLTE ta chỉ cần gõ dòng lệnh sau php artisan infyom.publish:layout
. Thử chạy php artisan serve
để xem thành quả.
Vâng thật đơn giản để tạo ra giao diện admin chuyên nghiệp phải không nào.
Các chức năng chính
Code generator
Với Laravel Generator bạn chỉ cần gõ 1 dòng lệnh nó sẽ tự sinh ra các file tương ứng cho bạn (nâng cấp của php artisan make:
)
Bản nâng cấp thì đương nhiên phải ngon hơn rồi. Cụ thể đó là nó có thể giúp bạn tạo model, view, controller, migration, tests, request,... Thậm chí có thể tạo luôn chức năng CRUD sử dụng VueJS Framework. Những công việc mà hàng ngày bạn phải làm thủ công thì nay đã có Laravel Generator giúp đỡ bạn hoàn thành chúng thật nhanh để bạn có thể dùng thời gian đó làm việc khác.
API generator
Package này có thể giúp bạn tạo ra đầy đủ chức năng api với validations và routes.
Giờ đây việc tạo API cũng cực kì đơn giản. Bạn chỉ cần gõ lệnh php artisan infyom:api Post
và làm theo yêu cầu của command là bạn có thể tạo các chức năng API chỉ trong vòng một nốt nhạc. Quá là tiết kiệm thời gian luôn.
Scaffold Generator
Cụ thể là bạn có thể gõ một dòng lệnh để tạo full chức năng CRUD cho một model. Ví dụ như php artisan infyom:scaffold Post
sau đấy nó sẽ yêu cầu bạn nhập vào các field của model đó và nó sẽ tự động tạo ra đầy đủ model, view, controller, migration, request, validation, responsitory.... Vâng quá ngon phải không nào, bình thường bạn sẽ phải tự tạo từng file một và ghép chúng lại, bây giờ Laravel Generator sẽ giúp bạn làm mọi việc và bạn chỉ cần thưởng thức một cốc coffee là mọi thứ đã xong rồi. Sẵn sàng cho bạn code những chức năng cao cấp hơn.
Templates
Laravel Generator hỗ trợ bạn tạo layout, giao diện rất nhanh và đơn giản. Cụ thể nó hỗ trợ 4 loại template sau:
AdminLTE
Giao diện Admin quen thuộc giờ đây chúng ta có thể mang nó vào project một cách nhanh nhất có thể.
Thêm package vào file composer.json
"require": {
"infyomlabs/adminlte-templates": "5.6.x-dev"
}
Chạy composer update
Thêm service provider
InfyOm\AdminLTETemplates\AdminLTETemplatesServiceProvider::class,
Update config template trong file config/infyom/laravel_generator.php
'templates' => 'adminlte-templates'
Cuối cùng chạy php artisan infyom.publish:layout
Bootstrap
Trước khi muốn chuyển từ 1 template sang 1 template khác thì bạn cần phải xóa bỏ template cũ trước bằng cách remove package trong composer và bỏ service provider. Sau đó thêm package vào composer.json
"require": {
"infyomlabs/core-templates": "5.5.x-dev"
}
Thêm provider
InfyOm\CoreTemplates\CoreTemplatesServiceProvider::class,
Update config template trong file config/infyom/laravel_generator.php
'templates' => 'core-templates'
Cuối cùng chạy php artisan infyom.publish:layout
Metronic
Tương tự 2 templates trên nhưng thay đổi package thành infyomlabs/metronic-templates
Service provider InfyOm\MetronicTemplates\MetronicTemplatesServiceProvider::class,
FlatLab
Package: infyomlabs/flatlab-templates
Service Provider: InfyOm\FlatLabTemplates\FlatLabTemplatesServiceProvider::class,
Generator GUI Interface Beta
Ngoài những thứ ngon lành trên thì giờ đây đội ngũ Infyom mới cho ra mắt package GUI Interface để thay thế những dòng lệnh khô khan trên thành một giao diện thân thiện và dễ sử dụng.
Để thử chức năng này ta làm như sau:
Thêm package composer.json
"require": {
"infyomlabs/generator-builder": "dev-master"
}
Thêm service provider:
\InfyOm\GeneratorBuilder\GeneratorBuilderServiceProvider::class,
Chạy publish command php artisan vendor:publish
Publish route: php artisan infyom.publish:generator-builder
.
Nó sẽ tự động thêm các route sau:
Route::get('generator_builder', '\InfyOm\GeneratorBuilder\Controllers\GeneratorBuilderController@builder');
Route::get('field_template', '\InfyOm\GeneratorBuilder\Controllers\GeneratorBuilderController@fieldTemplate');
Route::post('generator_builder/generate', '\InfyOm\GeneratorBuilder\Controllers\GeneratorBuilderController@generate');
Bây giờ bạn thử gõ link /generator_builder
để xem giao diện của nó:
Giờ đã dễ sử dụng hơn rồi đúng ko nào.
Kết luận
Với coder giảm thiểu công việc vặt để tăng năng suất là một điều cực kì cần thiết. Vậy giờ đây đã có Laravel Generator giúp bạn loại bỏ đi những công việc đơn giản nhưng lại cực kì thủ công và chiếm khá nhiều thời gian trong khi code của bạn. Thay vào đó bạn có thể để đầu óc thư giãn hoặc học hỏi các công nghệ mới hơn. Bài viết đã khá dài mình xin kết thúc tại đây, cảm ơn các bạn đã đọc bài viết. Chúc các bạn code vui code khỏe
Tham khảo
All rights reserved