สคริปต์และการโหลดอัตโนมัติของ Composer
กำหนดสคริปต์ใน composer.json และเปิดใช้การโหลดคลาสอัตโนมัติ
สคริปต์และการโหลดอัตโนมัติของ Composer เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
สคริปต์ใน composer.json
คีย์ scripts ใช้กำหนดคำสั่งเชลล์ที่มีชื่อ ซึ่งเรียกใช้ผ่าน composer run-script NAME หรือใช้เพียง composer NAME ก็ได้
การกำหนดสคริปต์
สคริปต์เป็นอาร์เรย์ของคำสั่งเชลล์หรือฟังก์ชันเรียกกลับแบบเมธอดคงที่ของ PHP
// composer.json
{
"scripts": {
"test": "vendor/bin/phpunit",
"lint": "vendor/bin/phpcs src/",
"cs-fix": "vendor/bin/phpcbf src/"
}
}การเรียกใช้สคริปต์
เรียกใช้สคริปต์ด้วยรูปแบบย่อ โดยพิมพ์ composer ตามด้วยชื่อสคริปต์
$ composer test
$ composer run-script lintสคริปต์ตามเหตุการณ์
Composer จะเรียกใช้เหตุการณ์ตามวงจรการทำงาน ซึ่งคุณสามารถเชื่อมต่อการทำงานได้ ได้แก่ post-install-cmd, post-update-cmd และ post-autoload-dump
// composer.json
{
"scripts": {
"post-install-cmd": ["php artisan migrate --force"]
}
}การเชื่อมโยงสคริปต์
อ้างอิงสคริปต์อื่นด้วย @script-name ภายในอาร์เรย์ของสคริปต์
// composer.json
{
"scripts": {
"build": ["@lint", "@test"]
}
}ประเภทของคีย์ Autoload
ส่วน autoload รองรับสามประเภท ได้แก่ psr-4, classmap และ files
// composer.json
{
"autoload": {
"psr-4": { "App\\": "src/" },
"classmap": ["database/"],
"files": ["src/helpers.php"]
}
}autoload-dev
autoload-dev จะเพิ่มกฎการโหลดอัตโนมัติเฉพาะสำหรับสภาพแวดล้อมภายในเครื่องหรือสภาพแวดล้อมสำหรับการทดสอบเท่านั้น เช่น คลาสพื้นฐานสำหรับการทดสอบที่ไม่ควรรวมไปกับแพ็กเกจ
การปรับปรุงตัวโหลดอัตโนมัติ
เรียกใช้ composer dump-autoload --optimize (หรือ -o) เพื่อสร้างแผนผังคลาสแบบคงที่ ทำให้ค้นหาคลาสได้เร็วขึ้น เหมาะอย่างยิ่งสำหรับระบบจริง
--classmap-authoritative
composer dump-autoload -a จะค้นหาเฉพาะในแผนผังคลาส และจะไม่ใช้การสำรองไปสแกนระบบไฟล์ตาม PSR-4 ใช้ตัวเลือกนี้เมื่อคลาสทั้งหมดถูกระบุไว้ในแผนผังแล้ว
แคช APCu
composer dump-autoload --apcu ใช้ APCu เพื่อเก็บการจับคู่คลาสกับไฟล์ไว้ในหน่วยความจำระหว่างคำขอ ช่วยเพิ่มความเร็วได้อย่างมากบนเซิร์ฟเวอร์ที่มีการใช้งานสูง
การตั้งค่าสคริปต์ CI ที่ใช้งานจริง
สคริปต์ทั่วไปของโครงการ ได้แก่ test, cs (มาตรฐานการเขียนโค้ด), analyse (PHPStan/Psalm) และ build (เชื่อมโยงทั้งสามสคริปต์)
สรุป
สคริปต์ของ Composer ช่วยทำงานซ้ำ ๆ ให้เป็นอัตโนมัติ ส่วน autoload จะเชื่อมเนมสเปซเข้ากับไฟล์ ใช้ dump-autoload -o ในระบบจริงเพื่อประสิทธิภาพสูงสุด
ตรวจสอบอย่างรวดเร็ว
เหตุการณ์ใดจะทำงานหลังจาก “composer install” เสร็จสิ้น
คำถามที่พบบ่อย
บทเรียน “สคริปต์และการโหลดอัตโนมัติของ Composer” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สคริปต์และการโหลดอัตโนมัติของ Composer” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สคริปต์และการโหลดอัตโนมัติของ Composer”
กำหนดสคริปต์ใน composer.json และเปิดใช้การโหลดคลาสอัตโนมัติ คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “สคริปต์และการโหลดอัตโนมัติของ Composer” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม
ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การติดตั้งและเริ่มต้นใช้งาน Composer
- การเรียกใช้และอัปเดตแพ็กเกจ
- ทำความเข้าใจ composer.lock
- สคริปต์และการโหลดอัตโนมัติของ Composer