Zend Framework - Tạo mô-đun

Trong chương này, chúng ta sẽ học cách tạo một mô-đun dựa trên MVC trong Zend Framework. Hãy để chúng tôi tạo một mô-đun có tên làTutorial để hiểu quy trình tạo mô-đun.

  • Tạo một lớp PHP mới có tên Module bên trong thư mục –myapp / module / Tutorial / src / và triển khai ConfigProviderInterface.

  • Bộ Tutorial làm không gian tên cho Module lớp học.

  • Viết một hàm công khai getConfig bên trong Module lớp và trả về tệp cấu hình cho Tutorial Mô-đun.

Mã hoàn chỉnh cho Module lớp như sau -

<?php  
namespace Tutorial; 
use Zend\ModuleManager\Feature\ConfigProviderInterface;
class Module implements ConfigProviderInterface { 
   public function getConfig() {    
      return include __DIR__ . '/../config/module.config.php'; 
   }    
}

Định cấu hình Tutorial mô-đun trong composer.json phía dưới cái autoload bằng cách sử dụng mã sau.

"autoload": { 
   "psr-4": { 
      "Application\\": "module/Application/src/", 
      "Tutorial\\": "module/Tutorial/src/" 
   } 
}

Cập nhật ứng dụng bằng trình soạn nhạc update lệnh như hình dưới đây.

composer update

Các composer lệnh sẽ thực hiện thay đổi cần thiết đối với ứng dụng và hiển thị nhật ký trong dấu nhắc lệnh như hình dưới đây:

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

Tạo tệp cấu hình mô-đun, “module.config.php” tại /config/ với mã sau -

<?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',], 
   ], 
];

Tệp cấu hình có ba phần và chúng như sau:

  • Controller configuration - Chỉ định các bộ điều khiển có sẵn bên trong Mô-đun.

  • Routing configuration - Chỉ định cách các bộ điều khiển trong mô-đun sẽ được phân giải thành URL.

  • View configuration - Chỉ định cấu hình liên quan đến chế độ xem như vị trí của các chế độ xem, v.v.

Định cấu hình Tutorial mô-đun trong tệp cấu hình mức ứng dụng - myapp / config / modules.config.php.

return ['Zend\Router', 'Zend\Validator', 'Application', 'Tutorial'];

Chạy ứng dụng bằng cách thực thi composer serve ở thư mục gốc của thư mục ứng dụng.

Chúng tôi đã thêm thành công một mô-đun mới, nhưng chúng tôi vẫn cần thêm Controller, RoutingViews để chạy thành công Tutorial mô-đun.