- 1. เริ่มต้นและค้นหาคำสั่ง
- 2. สร้างไฟล์งานด้วย make:*
- 3. ฐานข้อมูล: migration และ seeding
- 4. ตรวจ route และไฟล์ที่เข้าถึงได้
- 5. รันชุดทดสอบ
- 6. คิวและงานตามเวลา
- 7. แคชและการ deploy
- ตัวอย่างลำดับการทำงานหนึ่งฟีเจอร์
- เอกสารอ้างอิง
Artisan คือเครื่องมือบรรทัดคำสั่งที่มาพร้อม Laravel ช่วยสร้างไฟล์ ตรวจเส้นทาง จัดการฐานข้อมูล ทดสอบระบบ และดูแลงานเบื้องหลัง ให้เปิดเทอร์มินัลที่ โฟลเดอร์รากของโปรเจกต์ ซึ่งมีไฟล์ artisan แล้วใช้รูปแบบ php artisan <คำสั่ง> [ตัวเลือก] คำสั่งที่มีจริงอาจต่างกันตามเวอร์ชันและแพ็กเกจที่ติดตั้ง จึงควรใช้ php artisan list ตรวจในโปรเจกต์ของตนเองก่อนเสมอ

#1. เริ่มต้นและค้นหาคำสั่ง
| คำสั่ง | ใช้เมื่อไร |
|---|---|
php artisan list |
ดูคำสั่งทั้งหมดที่โปรเจกต์รองรับ |
php artisan help migrate |
อ่านอาร์กิวเมนต์และตัวเลือกของคำสั่ง migrate |
php artisan serve |
เปิดเว็บเซิร์ฟเวอร์สำหรับพัฒนาในเครื่อง |
php artisan tinker |
ทดลองเรียก Model, Eloquent และโค้ดของแอปใน REPL |
php artisan dev |
ใน Laravel 13 เปิดกระบวนการพัฒนาหลายตัวพร้อมกัน เช่น PHP server, queue worker, Pail และ Vite |
หากใช้ Laravel Sail ให้เปลี่ยนส่วนหน้าจาก php artisan เป็น ./vendor/bin/sail artisan เช่น ./vendor/bin/sail artisan migrate เพื่อรันภายในคอนเทนเนอร์ ส่วน php artisan dev เป็นความสามารถที่อ้างอิงเอกสาร Laravel 13; โปรเจกต์รุ่นก่อนอาจใช้สคริปต์ composer run dev ที่กำหนดไว้แทน
#2. สร้างไฟล์งานด้วย make:*
| คำสั่ง | ผลลัพธ์ |
|---|---|
php artisan make:model Post |
สร้าง Eloquent Model |
php artisan make:model Post -m |
สร้าง Model พร้อม migration |
php artisan make:model Post -mfsc |
สร้าง Model, migration, factory, seeder และ controller |
php artisan make:migration create_posts_table |
สร้าง migration เพื่อแก้โครงสร้างฐานข้อมูล |
php artisan make:controller PostController --resource |
สร้าง controller ที่มีเมธอดสำหรับ resource |
php artisan make:controller PostController --api |
สร้าง resource controller สำหรับ API โดยไม่มี create และ edit |
php artisan make:request StorePostRequest |
สร้าง Form Request สำหรับตรวจข้อมูลเข้า |
php artisan make:job ProcessPost |
สร้าง Job สำหรับประมวลผลในคิว |
php artisan make:seeder PostSeeder |
สร้างตัวเติมข้อมูลเริ่มต้น |
php artisan make:test PostTest |
สร้างไฟล์ทดสอบ |
php artisan make:command PublishPosts |
สร้าง Artisan command ของแอป |
ตัวอย่าง: เมื่อเริ่มฟีเจอร์บทความ ให้รัน php artisan make:model Post -mfsc จากนั้นแก้ migration, Model, controller และ seeder ที่สร้างขึ้นเอง คำสั่งสร้างเพียงโครงไฟล์ ยังต้องเขียนกติกาธุรกิจและเพิ่ม route ให้ครบ
#3. ฐานข้อมูล: migration และ seeding
| คำสั่ง | ความหมาย |
|---|---|
php artisan migrate:status |
ดู migration ที่รันแล้วและที่ยังรอ |
php artisan migrate |
รัน migration ที่ยังไม่เคยรัน |
php artisan migrate:rollback |
ย้อน batch ล่าสุด ซึ่งอาจมีหลายไฟล์ |
php artisan migrate:rollback --step=1 |
ย้อน migration ล่าสุดหนึ่งขั้น |
php artisan db:seed |
รัน DatabaseSeeder |
php artisan db:seed --class=PostSeeder |
รัน seeder ที่ระบุ |
php artisan migrate:fresh --seed |
ลบตารางทั้งหมด สร้างใหม่ และเติมข้อมูล |
ลำดับฝึกบนฐานข้อมูลสำหรับพัฒนา:
php artisan migrate:status
php artisan migrate
php artisan db:seed
ระวังข้อมูลหาย:
migrate:freshลบตารางทั้งหมดในฐานข้อมูลที่เลือก แม้มีตารางของแอปอื่นร่วมอยู่ ห้ามใช้กับฐานข้อมูล production หรือฐานข้อมูลที่แชร์โดยไม่ตรวจการเชื่อมต่อและสำรองข้อมูลก่อนmigrate:rollbackก็อาจทำให้ข้อมูลในตารางที่ถูกย้อนหายได้ ใน production คำสั่ง migration/seed บางชนิดอาจขอการยืนยัน;--forceข้ามการยืนยันนั้น จึงต้องใช้เฉพาะเมื่อทราบผลกระทบแล้ว
#4. ตรวจ route และไฟล์ที่เข้าถึงได้
php artisan route:list
php artisan route:list --path=api
php artisan route:list -v
php artisan storage:link
route:list ช่วยตรวจ URI, HTTP method, ชื่อ route และ action หากต้องการดู middleware ใช้ -v ส่วน storage:link สร้าง symbolic link จาก public/storage ไปยัง storage/app/public สำหรับไฟล์บน public disk; ไม่ได้ทำให้ไฟล์ใน private disk กลายเป็นสาธารณะ
#5. รันชุดทดสอบ
php artisan test
php artisan test --testsuite=Feature --stop-on-failure
php artisan test --filter=PostTest
php artisan test --profile
เริ่มจาก test เพื่อรันทั้งชุด ใช้ --filter เมื่อแก้เฉพาะจุด และใช้ --profile เพื่อตรวจกรณีทดสอบที่ช้า หากต้องการ php artisan test --parallel ให้ติดตั้ง brianium/paratest เป็น dev dependency ก่อน และเตรียมฐานข้อมูลทดสอบให้ถูกต้อง
#6. คิวและงานตามเวลา
| คำสั่ง | งานที่ทำ |
|---|---|
php artisan queue:work |
เริ่ม worker และรอประมวลผล Job ต่อเนื่อง |
php artisan queue:work --once |
รับงานหนึ่งงานแล้วจบ เหมาะสำหรับตรวจพฤติกรรม |
php artisan queue:failed |
แสดงรายการ Job ที่ล้มเหลว |
php artisan queue:retry <job-id> |
ลองรัน Job ที่ล้มเหลวอีกครั้งหลังแก้สาเหตุ |
php artisan queue:restart |
ส่งสัญญาณให้ worker ออกหลังจบงานปัจจุบัน เพื่อให้ process manager เปิดใหม่ด้วยโค้ดล่าสุด |
php artisan schedule:list |
แสดงงานตามกำหนดและเวลาเรียกครั้งถัดไป |
php artisan schedule:run |
ตรวจและรันงานที่ถึงเวลาขณะนั้น |
php artisan schedule:work |
เปิด scheduler ค้างไว้ระหว่างพัฒนาในเครื่อง |
queue:work เป็นกระบวนการที่ทำงานต่อเนื่องและไม่โหลดโค้ดใหม่เองหลัง deploy จึงใช้ queue:restart ร่วมกับ process manager เช่น Supervisor ใน production ส่วน scheduler บนเซิร์ฟเวอร์มักตั้ง cron ให้เรียก schedule:run ทุกนาที; การสั่งครั้งเดียว ไม่ได้ ตั้งเวลาให้อัตโนมัติ
#7. แคชและการ deploy
| คำสั่ง | ใช้ทำอะไร |
|---|---|
php artisan optimize |
สร้างแคชสำหรับ config, event, route และ view เพื่อใช้ตอน deploy |
php artisan config:cache |
รวมและแคชการตั้งค่า |
php artisan route:cache |
แคชการลงทะเบียน route |
php artisan view:cache |
คอมไพล์ Blade views ล่วงหน้า |
php artisan optimize:clear |
ล้างแคชที่ optimize สร้าง และคีย์ใน default cache driver |
ข้อควรจำ: หลัง config:cache ให้เรียก env() ภายในไฟล์ config เท่านั้น เพราะ .env จะไม่ถูกโหลดสำหรับการเรียก env() นอกไฟล์ config ตามปกติ และ optimize:clear อาจล้าง application cache ที่แอปใช้อยู่ด้วย จึงไม่ควรสั่งโดยไม่พิจารณาผลกระทบใน production
#ตัวอย่างลำดับการทำงานหนึ่งฟีเจอร์
# 1. สร้างโครงของฟีเจอร์ Post
php artisan make:model Post -mfsc
# 2. หลังเขียน migration และโค้ดแล้ว จัดการฐานข้อมูล
php artisan migrate:status
php artisan migrate
# 3. ตรวจ route ที่เพิ่มไว้เอง และรันชุดทดสอบ
php artisan route:list --path=api
php artisan test --filter=PostTest
# 4. ตรวจงานที่กำหนดเวลาและงานในคิวเมื่อฟีเจอร์เกี่ยวข้อง
php artisan schedule:list
php artisan queue:failed
จำให้ขึ้นใจ: เริ่มจาก list และ help เมื่อไม่แน่ใจ; ตรวจ migrate:status ก่อนเปลี่ยนฐานข้อมูล; รัน test หลังแก้โค้ด; และตรวจฐานข้อมูลเป้าหมายทุกครั้งก่อนใช้คำสั่งที่ลบข้อมูล