Laravel 13.30 อัปเดตใหม่ ให้คุณเลือกปิดคำสั่ง dev ที่ไม่ต้องการได้เอง
สั่งรันโปรเจกต์แบบคุมได้ทุกขั้นตอน
ปกติเวลาเราใช้คำสั่ง php artisan dev มันจะรันขั้นตอนการทำงานให้เราอัตโนมัติหลายอย่างเลยครับ ไม่ว่าจะเป็นการเปิดเว็บเซิร์ฟเวอร์ หรือจัดการคิวงานต่างๆ ซึ่งบางครั้งเราอาจไม่ได้อยากใช้ทุกตัวที่ระบบเตรียมมาให้
ใน Laravel 13.30 มีอัปเดตใหม่ที่เข้ามาแก้ปัญหานี้แล้วครับ โดยการเพิ่มเมธอด (คำสั่งเฉพาะในโค้ด) เข้ามาให้เราเลือกปิดคำสั่งที่ไม่จำเป็นออกไปได้เอง ทำให้เราคุมได้ว่าตอนเริ่มทำงาน จะให้โปรเจกต์ของเราทำอะไรบ้าง
การเปลี่ยนแปลงนี้ช่วยให้สภาพแวดล้อมการพัฒนา (พื้นที่ทำงานสำหรับเขียนโค้ด) ของคุณสะอาดขึ้นมากครับ คุณไม่ต้องเสียเวลาไปนั่งปิดโปรเซส (งานที่กำลังรันอยู่) ที่ไม่ได้ใช้เองอีกต่อไป
วิธีปิดคำสั่งจาก Vendor และค่าเริ่มต้น
การจะปิดคำสั่งเหล่านี้ทำได้ง่ายมากครับ โดยใช้คำสั่ง DevCommands ในไฟล์ AppServiceProvider ของคุณได้เลย มันช่วยให้คุณตัดส่วนที่ไม่ต้องการทิ้งไปได้ทันที
ลองดูตัวอย่างการตั้งค่าที่เลือกปิดคำสั่งทั้งหมดแล้วกำหนดใหม่เองตามนี้ครับ:
use Illuminate\Foundation\DevCommands;\nuse Illuminate\Support\ServiceProvider;\n\nclass AppServiceProvider extends ServiceProvider\n{\n public function boot(): void\n {\n DevCommands::withoutVendorCommands();\n DevCommands::withoutDefaultCommands();\n\n DevCommands::artisan('serve', 'server');\n DevCommands::artisan('queue:work --queue=notifications', 'queue:notifications');\n DevCommands::node('dev', 'vite');\n }\n}บรรทัดที่ใช้ withoutVendorCommands() คือการสั่งไม่ให้รันคำสั่งจากแพ็กเกจเสริม ส่วน withoutDefaultCommands() คือการสั่งไม่ให้รันคำสั่งพื้นฐานที่ Laravel จัดมาให้ จากนั้นเราค่อยใช้คำสั่ง artisan() เพื่อระบุงานที่เราต้องการรันจริงๆ ลงไปแทน
ผลลัพธ์ที่ได้คือ เมื่อคุณรันคำสั่ง dev ระบบจะเริ่มทำงานเฉพาะงานที่คุณกำหนดไว้ในบล็อกนี้เท่านั้น ไม่มีการรันค่าเริ่มต้นที่คุณไม่ได้เลือกมาให้รกเครื่องอีกต่อไป
คัดเลือกคำสั่งเฉพาะที่ต้องการใช้งาน
ถ้าคุณไม่ได้อยากปิดทั้งหมด แต่แค่อยากเลือกใช้บางอย่างก็ทำได้ครับ Laravel เตรียมคำสั่งสำหรับการเลือก (only) หรือยกเว้น (except) มาให้ด้วย
ตัวอย่างเช่น ถ้าคุณต้องการรันทุกอย่างของระบบ ยกเว้นแค่ตัวจัดการล็อก (logs) คุณก็เขียนโค้ดได้แบบนี้ครับ:
DevCommands::withoutVendorCommands();\nDevCommands::except('logs');คำสั่ง withoutVendorCommands() จะปิดการทำงานจากภายนอกทั้งหมดก่อน ส่วนบรรทัดถัดมาคือการเจาะจงว่าให้ยกเว้นตัว logs ออกไปจากการรันอัตโนมัติ
วิธีนี้ยืดหยุ่นมากครับ ทำให้คุณสามารถปรับแต่งการทำงานของคำสั่ง dev ให้เข้ากับสไตล์การทำงานของแต่ละโปรเจกต์ได้อย่างอิสระ ไม่ต้องทำตามค่ามาตรฐานที่ระบบตั้งไว้เสมอไป
รู้จักกับคำสั่งพื้นฐานที่ติดมากับเครื่อง
ปกติแล้ว Laravel จะมีค่าเริ่มต้นที่ชื่อว่า registerDefaults() ซึ่งคอยจัดการงานพื้นฐาน 4 อย่างให้เราอยู่แล้ว คือ server, queue, logs และ vite
งานทั้ง 4 นี้จะทำงานก็ต่อเมื่อเงื่อนไขครบ เช่น ถ้าโปรเจกต์ของคุณมีไฟล์ package.json อยู่ ระบบถึงจะรัน vite ให้โดยอัตโนมัติ เป็นต้น
การรู้ที่มาของคำสั่งเหล่านี้ช่วยให้คุณตัดสินใจได้ง่ายขึ้นว่า ควรจะปิดตัวไหนทิ้ง หรือควรจะเก็บตัวไหนไว้ เพื่อให้การพัฒนาโปรแกรมของคุณลื่นไหลที่สุดครับ
ตรวจสอบรายการคำสั่งที่กำลังทำงานอยู่
ถ้าคุณไม่แน่ใจว่าตอนนี้มีอะไรทำงานอยู่บ้างในโปรเจกต์ของคุณ Laravel มีคำสั่งเด็ดที่ชื่อว่า dev:list ให้ใช้ตรวจสอบครับ
เพียงแค่พิมพ์คำสั่งในเทอร์มินัล (หน้าต่างพิมพ์คำสั่ง) ดังนี้:
php artisan dev:listคำสั่งนี้จะแสดงรายการงานทั้งหมดที่กำลังถูกเรียกใช้งาน พร้อมบอกที่มาของแต่ละงานอย่างชัดเจนว่ามาจากส่วนไหนของเฟรมเวิร์ก
ผลลัพธ์ที่ได้จะเป็นตารางแสดงชื่อคำสั่ง คำสั่งจริงที่รันอยู่ และแหล่งที่มา ทำให้คุณเห็นภาพรวมทั้งหมดและเลือกปิดตัวที่เกินความจำเป็นได้แม่นยำขึ้นครับ
ส่งออกข้อมูลเป็น JSON สำหรับระบบอัตโนมัติ
สำหรับคนที่ชอบใช้เครื่องมือช่วยจัดการ หรือต้องการนำข้อมูลไปใช้กับระบบอื่น Laravel ยังรองรับการส่งออกข้อมูลเป็นรูปแบบ JSON (รูปแบบข้อมูลที่คอมพิวเตอร์อ่านง่าย) อีกด้วยครับ
คุณสามารถพิมพ์คำสั่งเพิ่มแฟล็ก (ตัวเลือกเสริม) ได้แบบนี้:
php artisan dev:list --jsonการทำแบบนี้จะทำให้ได้ข้อมูลออกมาเป็นชุดข้อความที่โปรแกรมอื่นนำไปอ่านต่อได้ทันที เหมาะมากสำหรับคนที่ทำระบบตรวจสอบงานอัตโนมัติหรือใช้เครื่องมือภายนอกมาช่วยจัดการงาน
ผลลัพธ์ที่ได้จะเป็นโครงสร้าง JSON ที่ระบุทั้งชื่อคำสั่ง สีที่ใช้แสดง และลำดับความสำคัญ ช่วยให้การเชื่อมต่อกับระบบอื่นทำได้ง่ายและรวดเร็วขึ้นเยอะครับ
สรุปสั้น ๆ
อัปเดตนี้ใน Laravel 13.30 ช่วยให้คุณมีอำนาจในการจัดการคำสั่ง dev ได้เต็มที่ครับ คุณสามารถเลือกปิดคำสั่งจาก Vendor หรือค่าเริ่มต้นที่ไม่ได้ใช้ได้ ช่วยให้โปรเจกต์ของคุณเบาและสะอาดขึ้น การปรับแต่งนี้ทำได้ง่ายผ่าน AppServiceProvider และมีคำสั่งตรวจสอบสถานะที่ชัดเจน ช่วยให้การเขียนโปรแกรมของคุณมีระเบียบและเป็นมืออาชีพมากขึ้นครับ
ที่มา: Exclude Vendor and Default Commands in `php artisan dev` — Laravel News
เรียบเรียงจากข่าวของ Laravel News อ่านข่าวต้นฉบับ ↗