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 โมดูล.