Bài 1: Zend1 - Hướng dẫn cài đặt và chạy ứng dụng đầu tiên
---o0o---
Link bài viết gốc
Xây dựng mô hình các thư mục sau
www/zfexam/application
www/zfexam/public/
www/zfexam/library
Trong thư mục public tạo 2 file .htaccess và index.php
Nội dung đầy đủ của file index.php:
<?php
defined('APPLICATION_PATH')|| defined('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
defined('APPLICATION_ENV') || defined('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
set_include_path(implode(PATH_SEPARATOR, array(
dirname(dirname(__FILE__)) . '/library',
get_include_path(),
)));
require_once 'Zend/Application.php';
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()->run();
Cùng phân tích các câu lệnh trong file index.php
Dòng đầu tiên
defined('APPLICATION_PATH')|| defined('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
Chạy câu lệnh:
echo APPLICATION_PATH;
Kết quả thu được là: D:\Ampps\www\zfexam\application, đây chính là vị trí của thư mục application
Câu lệnh:
echo (__FILE__);
Ta thu được đường dẫn: D:\Ampps\www\zfexam\public\index.php. Đây chính là đường dẫn của file đang chạy
Thêm dirname vào:
echo dirname(__FILE__);
Kết quả lại là: D:\Ampps\www\zfexam\public. Tức là trả về thư mục chứa file đang chạy
Tiếp tục thêm realpath vào:
echo realpath(dirname(__FILE__));
Kết quả thu được vẫn là: D:\Ampps\www\zfexam\public. Nhưng nếu thêm đầy đủ như ở dòng 1 thì kết quả lại là: D:\Ampps\www\zfexam\application
Vì 2 thư mục public và application là ngang hàng nhau nên để từ thư mục public (thư mục chứa file index.php đang chạy) chuyển sang thư mục application ta cần phải chạy câu lệnh trên
Xét tiếp dòng thứ 2
defined('APPLICATION_ENV') || defined('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
Hàm getenv() dùng để set giá trị cho biến môi trường. Trả về giá trị TRUE hoặc FALSE. Ở đây hàm trả về FALSE nên hằng APPLICATION_ENV có giá trị là production. Hằng này lưu thông tin của production ở file application.ini
Xét tiếp dòng thứ 3
set_include_path(implode(PATH_SEPARATOR, array(
dirname(dirname(__FILE__)) . '/library',
get_include_path(),
)));
Hàm get_include_path() trả về giá trị mới của include_path: D:\Ampps\www\zfexam/library;.;C:\php\pear.
Hàm set_include_path() trả lại giá trị của include_path
Hằng PATH_SEPARATOR đã được định nghĩa là dấu :
Dòng này làm nhiệm vụ load nội dung của library, nơi chứa thư viện của zend. Nôm na có thể hiểu là, nếu bạn sử dụng dòng này, thay vì bạn phải gõ: require_once 'Library/Zend/Application.php' Thì giờ bạn chỉ cần gõ: require_once 'Zend/Application.php' . Vì mặc định thư viện đã được nạp vào rồi.
Dòng tiếp theo là nạp nội dung trang Application.php
Tiếp đó gọi trang application.ini ở thư mục config
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . '/configs/application.ini'
);
Cuối cùng là việc thực thi lệnh bằng hàm run().
2. application.ini
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
Dòng đầu tiên khởi tạo phân đoạn có giá trị [production]
Dòng 2 và 3 cho phép bật tính năng báo lỗi của Zend
Dòng 4, 5 cho phép tìm tới file Bootstrap.php để thông qua nó tương tác các thư viện hàm trong Zend. Đồng thời chỉ định tên gọi của class là Bootstrap.
Dòng cuối cùng chỉ ra đường dẫn tới thư mục controller trong apptication
Không có nhận xét nào:
Đăng nhận xét