Menu

Tuesday, December 3, 2019

[Laravel - Package] วิธีการติดตั้งและตั้งค่า Laravel Modules
[Laravel - Package] How to Install and Config Laravel Modules

Laravel Modules เป็น package ที่สร้างขึ้น เพื่อจัดการ Laravel application ที่มีขนาดใหญ่ โดยการแบ่งเป็น module ย่อยๆ

วิธีการติดตั้ง

  1. สั่งติดตั้ง Laravel Modules package
  2. composer require nwidart/laravel-modules
  3. สร้างไฟล์ config ของ package ใน project
  4. php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

วิธีการตั้งค่า

  1. แก้ไข autoload ใน composer.json
  2. {
      "autoload": {
        "psr-4": {
          "App\\": "app/",
          "Modules\\": "modules/"
        }
      }
    }
    
  3. รัน command ดังนี้
  4. composer dump-autoload
  5. แก้ไขไฟล์ config/modules.php
    • namespace - ชื่อ namespace เริ่มต้นของ module ที่ถูกสร้าง
    • stubs.files - ไฟล์ตั้งต้นเมื่อสร้าง module ใหม่ ใส่
    • stubs.gitkeep - สร้าง gitkeep ไว้ภายใน folder ที่ถูกสร้างขึ้นหรือไม่ 
    • paths.modules - path ที่จะสร้าง module 
    • paths.generators - path ของ folder ที่จะถูกสร้าง เมื่อสร้าง module ใหม่ ตั้งค่า generate เป็น false เมื่อไม่ต้องการให้สร้าง folder
    • composer.vendor - ชื่อ vendor ใน composer.json ของ module ที่สร้างใหม่ โดยจะแสดงในรูปแบบ vendor_name/module_name
    • composer.author - ชื่อ author ใน composer.json ของ module ที่สร้างใหม่ 
  6. ตรวจสอบว่าชื่อ module ที่เพิ่งสร้าง มีอยู่ใน modules_statuses.json และมีสถานะเป็น true

วิธีการใช้งาน

  1. การสร้าง Module ใหม่
  2. php artisan module:make ActualPersonalCosts
    
  3. การตั้ง namespace ของ Class จะเป็นรูปแบบดังนี้
  4. namespace namespace_name\module_name\Http\Controllers;
    ยกตัวอย่าง เช่น
    namespace Modules\ActualPersonalCosts\Http\Controllers;
  5. การใช้งาน view จะเป็นรูปแบบดังนี้
  6. view('module_name_in_lower_case::view_name');
    ยกตัวอย่าง เช่น
    view('actualpersonalcosts::index')
    
  7. การ migration
  8. php artisan migrate
  9. การสร้าง Seeder ให้ใช้คำสั่งดังนี้
  10. php artisan module:make-seed table_to_seed module_name
    ยกตัวอย่าง เช่น
    php artisan module:make-seed AllocationTypes Allocations
    ผลการรันจะเป็นดังนี้
    Created : /var/www/modules/Allocations/Database/Seeders/AllocationTypesTableSeeder.php
    
  11. การ Seed ข้อมูลจาก Seeder ให้ใช้คำสั่งดังนี้ (ไม่สามารถใช้ php artisan module:seed ได้)
  12. php artisan db:seed --class=full_seeder_namespace\\seeder_class_name
    ยกตัวอย่าง เช่น
    php artisan db:seed --class=Modules\\Allocations\\Database\\Seeders\\AllocationTypesTableSeeder
  13. การสร้าง Console Command
  14. 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([
        \Modules\Projects\Console\GenerateMonthlyCost::class,
    ]);
    
อ่านการใช้งานคำสั่งเพิ่มเติมใน Artisan commands

No comments:

Post a Comment