คู่มือสำหรับผู้ร่วมพัฒนา Laravel Maestro

Laravel ใช้ Maestro ในการสร้าง Starter Kits เอกสารสำหรับการมีส่วนร่วม (contributing) ในชุดเครื่องมือเหล่านี้ยังมีอยู่น้อยมาก

หากคุณต้องการเพิ่มฟีเจอร์หรือแก้ไขบั๊กใน Starter Kit คุณจำเป็นต้องเข้าใจขั้นตอนการทำงาน (workflow) คู่มือนี้จะอธิบายวิธีการใช้งาน Maestro อย่างถูกต้อง

โครงสร้างไดเรกทอรี

Repository นี้ประกอบด้วยสามส่วนหลัก:

  • kits/: เก็บไฟล์ Starter Kit จริงๆ นี่คือไดเรกทอรีเดียวที่คุณต้องทำการ commit
  • orchestrator/: จัดการกระบวนการ build และรันชุดเครื่องมือต่างๆ
  • build/: เป็นพื้นที่ทำงานชั่วคราว Maestro จะสร้างโฟลเดอร์นี้ขึ้นมาเมื่อคุณสั่ง build

ขั้นตอนการพัฒนา (Development Workflow)

อย่าทำงานในไดเรกทอรี kits/ โดยตรง เว้นแต่คุณจะกำลังอัปเดตไฟล์จำนวนมากพร้อมกัน แต่ให้ทำตามขั้นตอนดังนี้แทน:

  1. ตั้งค่าสภาพแวดล้อม (Setup the environment) เข้าไปยังโฟลเดอร์ orchestrator/ จากนั้นรัน composer install และ npm install

  2. Build ชุดเครื่องมือที่คุณต้องการ รัน php artisan build เลือก framework, variant และฟีเจอร์ที่คุณต้องการ สิ่งนี้จะสร้างโฟลเดอร์ build/ ขึ้นมา

  3. รันชุดเครื่องมือ ใช้คำสั่ง composer kit:run จากโฟลเดอร์ orchestrator/ ซึ่งจะเริ่มการทำงานของแอปพลิเคชันบนพอร์ต 8000

  4. แก้ไขการเปลี่ยนแปลงของคุณ เปิดไดเรกทอรี build/ ค้นหาไฟล์ที่คุณต้องการแก้ไขและทำการแก้ไข

  5. ปล่อยให้ watcher ทำงาน Maestro ใช้ระบบ watcher เมื่อคุณบันทึกไฟล์ใน build/ ระบบจะอัปเดตไฟล์ที่ถูกต้องในไดเรกทอรี kits/ ให้โดยอัตโนมัติ

  6. ทดสอบการเปลี่ยนแปลงของคุณ หยุดกระบวนการ kit:run ก่อน เพราะคุณไม่สามารถรันการทดสอบในขณะที่ชุดเครื่องมือกำลังทำงานอยู่ได้ จากโฟลเดอร์ orchestrator/ ให้รัน:

  • composer kits:pint (สำหรับการจัดรูปแบบโค้ด)
  • composer kits:check (สำหรับการทดสอบ PHP)
  • composer kits:lint (สำหรับการทดสอบ JavaScript)
  1. Commit งานของคุณ ตรวจสอบ git status คุณควรเห็นการเปลี่ยนแปลงในโฟลเดอร์ kits/ ให้เพิ่มเฉพาะไดเรกทอรี kits/ ลงใน commit ของคุณเท่านั้น

ตัวอย่าง: การเปลี่ยนข้อความจาก "Log in" เป็น "Log on"

  • แก้ไขไฟล์ blade หรือ component ภายใน build/
  • รอให้ watcher อัปเดต kits/
  • รันการทดสอบเพื่อให้แน่ใจว่าคุณไม่ได้ทำให้ variant อื่นๆ เสียหาย
  • Commit ไฟล์ใน kits/

กระบวนการนี้จะช่วยให้มั่นใจว่าการมีส่วนร่วมของคุณนั้นสะอาดและเป็นไปตามสถาปัตยกรรมของ Maestro

แหล่งที่มา: https://dev.to/catatsumuri/laravel-maestro-contributor-tutorial-2p89