Menu

Wednesday, December 11, 2019

[Laravel - Package] วิธีการใช้งาน Laravel Modules
[Laravel - Package] How to Use Laravel Modules

Modules

การสร้าง Module ใหม่

php artisan module:make module_name
ยกตัวอย่าง เช่น
php artisan module:make Projects

การตั้ง namespace ของ Class

namespace namespace_name\module_name\Http\Controllers;
ยกตัวอย่าง เช่น
namespace Modules\Projects\Http\Controllers;

Migrations

การสร้าง Migration

php artisan module:make-migration create_projects_table Projects

การรัน Migration

php artisan migrate

Seeds

การสร้าง Seeder

php artisan module:make-seed table_to_seed module_name
ยกตัวอย่าง เช่น
php artisan module:make-seed ProjectTypes Projects
ผลการรันจะเป็นดังนี้
Created : /var/www/modules/Projects/Database/Seeders/ProjectTypesTableSeeder.php

การรัน Seeder

php artisan db:seed --class=full_seeder_namespace\\seeder_class_name
ยกตัวอย่าง เช่น
php artisan db:seed --class=Modules\\Projects\\Database\\Seeders\\ProjectTypesTableSeeder

Controllers

php artisan module:make-controller controller_name module_name
ยกตัวอย่าง เช่น
php artisan module:make-controller ProjectTypeController Projects

Models

php artisan module:make-model model_name module_name
ยกตัวอย่าง เช่น
php artisan module:make-model ProjectTypes Projects

Console Commands

การสร้าง Console Command

php artisan module:make-command command_class_name module_name
ยกตัวอย่าง เช่น
php artisan module:make-command GenerateMonthlyCostCommand Projects

หลังจากนั้นให้เพิ่ม code ด้านล่างนี้ใน function register ใน Service Provider ของ Module
$this->commands([
    command_class,
]);
ยกตัวอย่าง เช่น function register ใน ProjectsServiceProvider ให้เพิ่มโค้ดดังนี้
$this->commands([
    \Modules\Projects\Console\GenerateMonthlyCostCommand::class,
]);

Resources

การเรียกใช้ View

view('module_name_in_lower_case::view_name');
ยกตัวอย่าง เช่น
view('projects::index')

การเรียกใช้ Lang

trans('module_name_in_lower_case::filename.key');
ยกตัวอย่าง เช่น
trans('projects::project_types.internal')

การเรียกใช้ Config

ไฟล์ config ของแต่ละ Module จะอยู่ที่ Config/config.php ของ Module นั้นๆ การเรียกใช้งานเป็นดังนี้
config('module_name_in_lower_case.key');
ยกตัวอย่าง เช่น
trans('projects.name')

หมายเหตุ สำหรับวิธีติดตั้งและตั้งค่า Laravel Module สามารถอ่านได้ที่ [Laravel - Package] วิธีการติดตั้งและตั้งค่า Laravel Modules

No comments:

Post a Comment