Zend Framework - การสร้างโมดูล
ในบทนี้เราจะเรียนรู้วิธีสร้างโมดูลที่ใช้ MVC ใน Zend Framework ให้เราสร้างโมดูลที่เรียกว่า asTutorial เพื่อทำความเข้าใจกระบวนการสร้างโมดูล
สร้างคลาส PHP ใหม่ชื่อ Module ภายในไดเร็กทอรี –myapp / module / Tutorial / src / และใช้ ConfigProviderInterface
ชุด Tutorial เป็นเนมสเปซสำหรับ Module ชั้นเรียน.
เขียนฟังก์ชันสาธารณะ getConfig ใน Module คลาสและส่งคืนไฟล์คอนฟิกูเรชันสำหรับ Tutorial โมดูล.
รหัสที่สมบูรณ์สำหรับ Module คลาสมีดังนี้ -
<?php
namespace Tutorial;
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements ConfigProviderInterface {
public function getConfig() {
return include __DIR__ . '/../config/module.config.php';
}
}
กำหนดค่า Tutorial โมดูลใน composer.json ภายใต้ autoload โดยใช้รหัสต่อไปนี้
"autoload": {
"psr-4": {
"Application\\": "module/Application/src/",
"Tutorial\\": "module/Tutorial/src/"
}
}
อัปเดตแอปพลิเคชันโดยใช้โปรแกรมแต่งเพลง update คำสั่งดังที่แสดงด้านล่าง
composer update
composer คำสั่งจะทำการเปลี่ยนแปลงที่จำเป็นในแอปพลิเคชันและแสดงบันทึกในพรอมต์คำสั่งดังที่แสดงด้านล่าง -
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing zendframework/zend-component-installer (0.3.0)
- Installing zendframework/zend-component-installer (0.3.1)
Downloading: 100%
- Removing zendframework/zend-stdlib (3.0.1)
- Installing zendframework/zend-stdlib (3.1.0)
Loading from cache
- Removing zendframework/zend-eventmanager (3.0.1)
- Installing zendframework/zend-eventmanager (3.1.0)
Downloading: 100%
- Removing zendframework/zend-view (2.8.0)
- Installing zendframework/zend-view (2.8.1)
Loading from cache
- Removing zendframework/zend-servicemanager (3.1.0)
- Installing zendframework/zend-servicemanager (3.2.0)
Downloading: 100%
- Removing zendframework/zend-escaper (2.5.1)
- Installing zendframework/zend-escaper (2.5.2)
Loading from cache
- Removing zendframework/zend-http (2.5.4)
- Installing zendframework/zend-http (2.5.5)
Loading from cache
- Removing zendframework/zend-mvc (3.0.1)
- Installing zendframework/zend-mvc (3.0.4)
Downloading: 100%
- Removing phpunit/phpunit (5.7.4)
- Installing phpunit/phpunit (5.7.5)
Downloading: 100%
Writing lock file
Generating autoload files
สร้างไฟล์คอนฟิกูเรชันโมดูล“ module.config.php” ที่ /config/ ด้วยรหัสต่อไปนี้ -
<?php
namespace Tutorial;
use Zend\ServiceManager\Factory\InvokableFactory;
use Zend\Router\Http\Segment;
return [
'controllers' => [
'factories' => [Controller\TutorialController::class => InvokableFactory::class,],
],
'view_manager' => [
'template_path_stack' => ['tutorial' => __DIR__ . '/../view',],
],
];
ไฟล์คอนฟิกูเรชันมีสามส่วนดังนี้ -
Controller configuration - ระบุตัวควบคุมที่มีอยู่ภายในโมดูล
Routing configuration - ระบุวิธีการแก้ไขคอนโทรลเลอร์ในโมดูลให้เป็น URL
View configuration - ระบุการกำหนดค่าที่เกี่ยวข้องกับการดูเครื่องยนต์เช่นตำแหน่งของมุมมองเป็นต้น
กำหนดค่า Tutorial โมดูลในไฟล์คอนฟิกูเรชันระดับแอ็พพลิเคชัน - myapp / config / module.config.php
return ['Zend\Router', 'Zend\Validator', 'Application', 'Tutorial'];
เรียกใช้แอปพลิเคชันโดยเรียกใช้ไฟล์ composer serve ที่รากของโฟลเดอร์แอปพลิเคชัน
เราได้เพิ่มโมดูลใหม่เรียบร้อยแล้ว แต่เรายังต้องเพิ่มไฟล์ Controller, Routing และ Views เพื่อรันไฟล์ Tutorial โมดูล.