Zend Framework - ระบบโมดูล
Zend Framework มีระบบโมดูลที่มีประสิทธิภาพ ระบบโมดูลมีส่วนประกอบสามส่วน มีดังนี้ -
Module Autoloader- โมดูล Autoloader มีหน้าที่ในการค้นหาและโหลดโมดูลจากแหล่งต่างๆ สามารถโหลดโมดูลที่บรรจุเป็นไฟล์Phar archivesเช่นกัน. การใช้งาน Module Autoloader อยู่ที่ myapp / vendor / zendframework / zend-loader / src / ModuleAutoloader.php
Module Manager- เมื่อโมดูล Autoloader ค้นหาโมดูลแล้วตัวจัดการโมดูลจะยิงลำดับเหตุการณ์สำหรับแต่ละโมดูล การใช้งานตัวจัดการโมดูลจะอยู่ที่ myapp / vendor / zendframework / zendmodulemanager / src / ModuleManager.php
Module Manager Listeners- สามารถแนบกับเหตุการณ์ที่เรียกใช้โดยตัวจัดการโมดูล เมื่อเชื่อมต่อกับเหตุการณ์ของตัวจัดการโมดูลพวกเขาสามารถทำทุกอย่างได้ตั้งแต่การแก้ไขและโหลดโมดูลไปจนถึงการทำงานที่ซับซ้อนสำหรับแต่ละโมดูล
ระบบโมดูลเว็บ MVC
MVC Web Application ใน Zend Framework มักจะเขียนเป็นโมดูล เว็บไซต์เดียวสามารถมีโมดูลอย่างน้อยหนึ่งโมดูลที่จัดกลุ่มตามฟังก์ชันการทำงาน โครงสร้างที่แนะนำสำหรับโมดูลเชิง MVC มีดังต่อไปนี้ -
module_root/
Module.php
autoload_classmap.php
autoload_function.php
autoload_register.php
config/
module.config.php
public/
images/
css/
js/
src/
<module_namespace>/
<code files>
test/
phpunit.xml
bootstrap.php
<module_namespace>/
<test code files>
view/
<dir-named-after-module-namespace>/
<dir-named-after-a-controller>/
<.phtml files>
โครงสร้างจะเหมือนกับที่กล่าวไว้ในบทที่แล้ว แต่ในที่นี้เป็นแบบทั่วไป autoload_ files สามารถใช้เป็นกลไกเริ่มต้นสำหรับการโหลดคลาสที่มีอยู่ในโมดูลโดยอัตโนมัติโดยไม่ต้องใช้ขั้นสูง Module Manager มีอยู่ในไฟล์ zend-modulemanager.
autoload_classmap.php - ส่งคืนอาร์เรย์ของชื่อคลาสและชื่อไฟล์ที่เกี่ยวข้อง
autoload_function.php- ส่งคืนการเรียกกลับ PHP สิ่งนี้สามารถใช้ประโยชน์จากคลาสที่ส่งคืนโดย autoload_classmap.php
autoload_register.php - ลงทะเบียนการเรียกกลับ PHP ที่ส่งคืนโดย autoload_function.php
ไฟล์เหล่านี้ไม่จำเป็นต้องโหลดอัตโนมัติ แต่แนะนำ ในแอปพลิเคชัน skeleton เราไม่ได้ใช้ไฟล์autoload_ files.
คลาสโมดูล
ควรตั้งชื่อคลาสโมดูล Module และเนมสเปซของคลาสโมดูลควรเป็น Module name. สิ่งนี้จะช่วยให้ Zend Framework แก้ไขและโหลดโมดูลได้อย่างง่ายดาย Application รหัสโมดูลในแอปพลิเคชันโครงกระดูก (myapp), myapp / module / Application / src / Module.php มีดังนี้ -
namespace Application;
class Module {
const VERSION = '3.0.2dev';
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
ตัวจัดการโมดูล Zend Framework จะเรียกไฟล์ getConfig() ทำงานโดยอัตโนมัติและจะทำตามขั้นตอนที่จำเป็น