Quy trình hoạt động Zend Framework Trong bài này, tôi sẽ nói đến hướng hoạt động và giúp các bạn phân tích cũng như tìm hiểu về quy trình xử lý trong Zend Framework.. Khi hoạt động, tron
Trang 1Quy trình hoạt động Zend Framework
Trang 2Quy trình hoạt động Zend Framework
Trong bài này, tôi sẽ nói đến hướng hoạt động và giúp các bạn phân tích
cũng như tìm hiểu về quy trình xử lý trong Zend Framework Để qua đó có
thể mở rộng và tùy chọn trong ứng dụng của mình
Ở phần trước chúng ta đã cùng tìm hiểu về cài đặt và cấu hình Zend framework trên Netbeans
1.Zend Framework làm việc như thế nào?:
Zend Framework vận hành theo mô hình MVC Vì thế bạn sẽ công cảm
thấy ngạc nhiên khi tiếp xúc với quy trình này
Ví dụ:
Trang 3Từ ví dụ trên ta thấy Computer được xem là một controller và Product List được xem là một action của controller đó Khi hoạt động, trong controller bạn sẽ khởi tạo những action như mong muốn thông qua việc thiết lập phương thức một cách cụ thể
Ví dụ:
1 ?php
2 class IndexController extends Zend_Controller_Action{
3 public function indexAction(){
4 }
5 }
class IndexController cho ta Controller mang tên index() và indexAction() thì cho ta action là index
Khi đó bạn bắt buộc phải khởi tạo trong views một thư mục ứng với
controller là index trong scripts Và file index.phml ứng với action là index
Trang 4Xét ví dụ khác:
1 ?php
2 class ComputerController extends Zend_Controller_Action{
3 public function indexAction(){
4 }
5 public function productlistAction(){
6 }
7 }
Ở ví dụ này cho ta biết Controller là Computer, 2 action là index và productlist
Như vậy, để chạy được ứng dụng Bạn cần tạo thư mục Computer trong views ứng với controller và file index.phtml, productlist.phtml
Cụ thể:
application
_controller
_computerController.php
application
_views
_scripts
Trang 5_computer
_index.phtml
application
_views
_scripts
_computer
_productlist.phtml
2.File index.php và application.ini trong Zend Framework có những gì?:
Nội dung đầy đủ file index.php
01 ?php
02 defined('APPLICATION_PATH')
03 || define('APPLICATION_PATH',
04 realpath(dirname( FILE ) '/ /application'));
05 defined('APPLICATION_ENV')
06 || define('APPLICATION_ENV',
07 (getenv('APPLICATION_ENV')
? getenv('APPLICATION_ENV')
Trang 608 : 'production'));
09 set_include_path(implode(PATH_SEPARATOR, array(
10 dirname(dirname( FILE )) '/library',
11 get_include_path(),
12 )));
13 require_once 'Zend/Application.php' ;
14 $application = new Zend_Application(
15 APPLICATION_ENV,
16 APPLICATION_PATH '/configs/application.ini'
17 );
18 $application->bootstrap()->run();
Tiếp theo chúng ta sẽ tìm hiểu xem bên trong file index.php này có những điểm gì cần lưu ý
1 defined('APPLICATION_PATH')
2 || define('APPLICATION_PATH',
3 realpath(dirname( FILE ) '/ /application'));
Trang 7Dòng này khai báo cho Zend Framework biết bạn đang đặt thư mục
application ở đâu thông qua một hằng APPLICATION_PATH Đây là hằng
mà bạn sẽ dùng rất nhiều trong các khai báo cấu hình sau này
1 defined('APPLICATION_ENV')
2 || define('APPLICATION_ENV',
3 (getenv('APPLICATION_ENV')
? getenv('APPLICATION_ENV')
4 : 'production'));
Dòng này cho phép đọc thông tin phân đoạn có tên production ở file application.ini ở bên dưới Và ta đưa chữ production vào một hằng là APPLICATION_ENV
1 set_include_path(implode(PATH_SEPARATOR, array(
2 dirname(dirname( FILE )) '/library',
3 get_include_path(),
4 )));
Dòng này làm nhiệm vụ load nội dung của thư viện library nơi mà bạn 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 Thì ở phần dưới và những trang khác, 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
Trang 81 require_once 'Zend/Application.php' ;
2 $application = new Zend_Application(
3 APPLICATION_ENV,
4 APPLICATION_PATH '/configs/application.ini
5 );
Tiếp tới, chúng ta nạp nội dung trang Application.php và tiếp tục gọi trang application.ini ở thư mục config Và nếu bạn chú ý, sẽ thấy chúng ta sử dụng
2 hằng vừa khởi tạo là APPLICATION_ENV và APPLICATION_PATH để lấy thông tin
1 $application->bootstrap()->run();
Và cuối cùng là việc thực thi lệnh bằng hàm run()
Khi chúng ta đã hiểu được vấn đề, thì chúng ta có thể viết chúng gọn lại theo cách mà ta hiểu
01 ?php
02 define('APPLICATION_PATH',
03 realpath(dirname( FILE ) '/ /application'));
04 define('APPLICATION_ENV','production');
05 set_include_path(dirname(dirname( FILE )) '/library');
Trang 906 require_once 'Zend/Application.php' ;
07 $application = new Zend_Application(
08 APPLICATION_ENV,
09 APPLICATION_PATH '/configs/application.ini'
10 );
11 $application->bootstrap()->run();
Tiếp tới ta tìm hiểu file application.ini để xem nó thể hiện thông tin gì:
1 [production]
2 phpSettings.display_startup_errors = 0
3 phpSettings.display_errors = 0
4 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
5 bootstrap.class = "Bootstrap"
6 resources.frontController.controllerDirectory =
APPLICATION_PATH"/controllers"
Dòng đầu tiên có chức năng khởi tạo phân đoạn mang giá trị [production] Bởi vì trong file này chúng ta chia làm nhiều phân đoạn một cách rõ ràng Ví
dụ phân đoạn chứa cơ sở dữ liệu, phân đoạn chứa thông tin layout, kết nối CSDL,…
Trang 101 [production]
2 phpSettings.display_startup_errors = 0
3 phpSettings.display_errors = 0
Hai dòng này cho phép bạn có bật tính năng báo lỗi của Zend
Framework hay không, nếu có bạn sẽ sửa giá trị thành 1
1 bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
2 bootstrap.class = "Bootstrap"
Hai dòng này cho phép bạn tìm tới file bootstrap.php để thông qua nó tương
tác các thư viện hàm trong Zend Framework Đồng thời chỉ định tên gọi
của class là Bootstrap Ở đây bạn cũng cần lưu ý là tên class trong file
Bootstrap.php phải cùng tên với Bootstrap mà bạn đã khai báo ở
application.ini
1 resources.frontController.controllerDirectory =
APPLICATION_PATH"/controllers"
Dòng này chỉ ra đường dẫn tới thư mục controllers trong thư mục
application của chúng ta