คู่มือสำหรับผู้ร่วมพัฒนา Laravel Maestro
Laravel ใช้ Maestro ในการสร้าง Starter Kits เอกสารสำหรับการมีส่วนร่วม (contributing) ในชุดเครื่องมือเหล่านี้ยังมีอยู่น้อยมาก
หากคุณต้องการเพิ่มฟีเจอร์หรือแก้ไขบั๊กใน Starter Kit คุณจำเป็นต้องเข้าใจขั้นตอนการทำงาน (workflow) คู่มือนี้จะอธิบายวิธีการใช้งาน Maestro อย่างถูกต้อง
โครงสร้างไดเรกทอรี
Repository นี้ประกอบด้วยสามส่วนหลัก:
- kits/: เก็บไฟล์ Starter Kit จริงๆ นี่คือไดเรกทอรีเดียวที่คุณต้องทำการ commit
- orchestrator/: จัดการกระบวนการ build และรันชุดเครื่องมือต่างๆ
- build/: เป็นพื้นที่ทำงานชั่วคราว Maestro จะสร้างโฟลเดอร์นี้ขึ้นมาเมื่อคุณสั่ง build
ขั้นตอนการพัฒนา (Development Workflow)
อย่าทำงานในไดเรกทอรี kits/ โดยตรง เว้นแต่คุณจะกำลังอัปเดตไฟล์จำนวนมากพร้อมกัน แต่ให้ทำตามขั้นตอนดังนี้แทน:
ตั้งค่าสภาพแวดล้อม (Setup the environment) เข้าไปยังโฟลเดอร์
orchestrator/จากนั้นรันcomposer installและnpm installBuild ชุดเครื่องมือที่คุณต้องการ รัน
php artisan buildเลือก framework, variant และฟีเจอร์ที่คุณต้องการ สิ่งนี้จะสร้างโฟลเดอร์build/ขึ้นมารันชุดเครื่องมือ ใช้คำสั่ง
composer kit:runจากโฟลเดอร์orchestrator/ซึ่งจะเริ่มการทำงานของแอปพลิเคชันบนพอร์ต 8000แก้ไขการเปลี่ยนแปลงของคุณ เปิดไดเรกทอรี
build/ค้นหาไฟล์ที่คุณต้องการแก้ไขและทำการแก้ไขปล่อยให้ watcher ทำงาน Maestro ใช้ระบบ watcher เมื่อคุณบันทึกไฟล์ใน
build/ระบบจะอัปเดตไฟล์ที่ถูกต้องในไดเรกทอรีkits/ให้โดยอัตโนมัติทดสอบการเปลี่ยนแปลงของคุณ หยุดกระบวนการ
kit:runก่อน เพราะคุณไม่สามารถรันการทดสอบในขณะที่ชุดเครื่องมือกำลังทำงานอยู่ได้ จากโฟลเดอร์orchestrator/ให้รัน:
composer kits:pint(สำหรับการจัดรูปแบบโค้ด)composer kits:check(สำหรับการทดสอบ PHP)composer kits:lint(สำหรับการทดสอบ JavaScript)
- 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
