Laravel 13.30 อัปเดตใหม่ ให้คุณเลือกปิดคำสั่ง dev ที่ไม่ต้องการได้เอง

อ่าน 7 นาที 0 ผู้อ่าน

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 อ่านข่าวต้นฉบับ ↗

← กลับไปหน้าข่าวสาร