การโหลดอัตโนมัติ
การโหลดไฟล์ตามมาตรฐาน PSR-0 ด้วย composer
Webman ปฏิบัติตามมาตรฐานการโหลดอัตโนมัติ PSR-4
หากธุรกิจของคุณต้องการโหลดโค้ดที่เป็นไปตามมาตรฐาน PSR-0
โปรดทำตามขั้นตอนด้านล่างนี้
- สร้างไดเรกทอรี
extend
เพื่อเก็บโค้ดที่เป็นไปตามมาตรฐานPSR-0
- แก้ไข
composer.json
เพื่อเพิ่มเนื้อหาดังต่อไปนี้ในautoload
"psr-0" : {
"": "extend/"
}
ผลลัพธ์สุดท้ายจะมีลักษณะคล้ายกับ
- รัน
composer dumpautoload
- รัน
php start.php restart
เพื่อรีสตาร์ท webman (โปรดทราบว่าต้องรีสตาร์ทเพื่อให้มีผล)
การโหลดไฟล์บางไฟล์ด้วย composer
-
แก้ไข
composer.json
เพื่อเพิ่มไฟล์ที่ต้องการโหลดในautoload.files
"files": [ "./support/helpers.php", "./app/helpers.php" ]
-
รัน
composer dumpautoload
-
รัน
php start.php restart
เพื่อรีสตาร์ท webman (โปรดทราบว่าต้องรีสตาร์ทเพื่อให้มีผล)
คำแนะนำ
ไฟล์ที่กำหนดในautoload.files
ใน composer.json จะถูกโหลดก่อนที่ webman จะเริ่มทำงาน ในขณะที่ไฟล์ที่โหลดด้วยconfig/autoload.php
ของเฟรมเวิร์กจะถูกโหลดหลังจากที่ webman เริ่มทำงานแล้ว
หากมีการเปลี่ยนแปลงไฟล์ที่โหลดในautoload.files
ใน composer.json จะต้องทำการ restart เพื่อให้มีผล การ reload จะไม่มีผล ในขณะที่ไฟล์ที่โหลดด้วยconfig/autoload.php
ของเฟรมเวิร์กรองรับการโหลดแบบร้อน เมื่อมีการเปลี่ยนแปลงแล้วสามารถทำการ reload เพื่อให้มีผลได้
การโหลดไฟล์บางไฟล์ด้วยเฟรมเวิร์ก
ไฟล์บางไฟ้อาจไม่เป็นไปตามมาตรฐาน SPR และไม่สามารถโหลดอัตโนมัติได้ เราสามารถตั้งค่าโหลดไฟล์เหล่านี้ได้ผ่าน config/autoload.php
เช่น:
return [
'files' => [
base_path() . '/app/functions.php',
base_path() . '/support/Request.php',
base_path() . '/support/Response.php',
]
];
คำแนะนำ
เราจะเห็นว่าในautoload.php
ได้ตั้งค่าโหลดไฟล์support/Request.php
และsupport/Response.php
สองไฟล์นี้ เนื่องจากในvendor/workerman/webman-framework/src/support/
ก็มีไฟล์ที่เหมือนกันสองไฟล์นี้อยู่ เราจึงใช้autoload.php
โหลดไฟล์support/Request.php
และsupport/Response.php
ที่อยู่ในไดเรกทอรีรากของโปรเจกต์ก่อน ซึ่งอนุญาตให้เราปรับแต่งเนื้อหาของไฟล์ทั้งสองนี้โดยไม่ต้องแก้ไขไฟล์ในvendor
หากคุณไม่ต้องการปรับแต่งพวกมัน สามารถละเว้นการตั้งค่าสองรายการนี้ได้