Nếu bạn vẫn chưa thể thực hiện được cách cấu hình mặc định của zend framework. Vui lòng xem lại 2 bàiHướng dẫn cài đặt và cấu hình ứng dụng đầu tiên , tìm hiểu quy trình làm việc trong zend framework.
Trước tiên, ta xét lại cấu trúc mặc định của hệ thống qua tấm hình bên dưới:
Như chúng ta thấy, với cấu hình ở trên thì trong application có 3 thư mục chủ đạo là controllers, models, views. Vậy để tạo ứng dụng theo mô hình module ta tạo 1 thư mực modules. Trong thư mục này ta tạo tiếp 2 module là default và admin theo cấu trúc:
Mã:
zf2/application/modules/default zf2/application/modules/admin
Mã:
Module default: zf2/application/modules/default/controllers zf2/application/modules/default/models zf2/application/modules/default/views Module admin: zf2/application/modules/admin/controllers zf2/application/modules/admin/models zf2/application/modules/admin/views
File IndexController.php của module default
PHP Code:
<?php class IndexController extends Zend_Controller_Action{
public function indexAction(){
}
}
PHP Code:
<?php class Admin_IndexController extends Zend_Controller_Action{
public function indexAction(){
}
}Tiếp tục, ta di chuyển 2 file index.php và .htaccess ra khỏi thư mục public theo cấu trúc như sau:
Mã:
www/zf2/index.php www/zf2/.htaccess
PHP Code:
<?php
define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/../application')); define('APPLICATION_ENV','production'); set_include_path(dirname(dirname(__FILE__)) . '/library');
require_once 'Zend/Application.php' ;$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap()->run();Vậy hằng APPLICATION_PATH cũng chúng ta đã thay đổi và trỏ đường dẫn tới thư mục application.
Tiếp tục ta cấu hình cho ứng dụng tìm tới được thư mục library.
PHP Code:
set_include_path(APPLICATION_PATH . '/../library'); Vậy file index.php củng chúng ta sau khi chỉnh sửa sẽ như sau:
PHP Code:
<?php
define('APPLICATION_PATH',
realpath(dirname(__FILE__) . '/application')); define('APPLICATION_ENV','production'); set_include_path(APPLICATION_PATH . '/../library');
require_once 'Zend/Application.php' ;$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini' ); $application->bootstrap()->run();www/zf2/application/modules/default/views/scripts/index/index.phtml
HTML Code:
<h1>Hello Zend Framework – Default Module<h1>
HTML Code:
<h1>Hello Zend Framework – Admin Module<h1>
http://localhost/zf2/default
http://localhost/zf2/admin/index
Bị lỗi rồi phải không nào ?. Ứng dụng bị lỗi là vì chúng ta vẫn chưa cấu hình để tìm thấy được thư mục module.
Vì thế, để giải quyết. Tả mở file application.ini trong thư mục configs ra và thêm vào 2 dòng sau:
PHP Code:
resources.frontController.moduleDirectory=APPLICATION_PATH "/modules"resources.modules="" Chạy xem lại xem nào.
Kết quả sẽ như thế này đây
Hình ảnh cấu trúc multi Module trong Zend Framework (file .htaccess không hiển thị trong mô hình cây này).
Download mã nguồn của bài học tại đây
Không có nhận xét nào:
Đăng nhận xét