10/10/2018, 09:52
Cùng tìm hiểu về Zend Framework và Zend Studio
Hiện mình đang làm 1 đề tài về web và sử dụng Zend Framework làm nền tảng.
Tuy nhiên do mình là dân amateur - kiến thức về PHP5 (cũng như Apache server,MySQL) có giới hạn nên quá trình tìm hiểu hơi khó khăn.Do đó mình lập thread này mong được giao lưu học hỏi để có thể cùng nhau nắm được một trong những framework mạnh nhất hiện nay: "Zend Framework 1.0".
Mong được các cao thủ về PHP(như bác pcdinh chẳng hạn) và các anh em yêu thích PHP ủng hộ thì thread này mới có chất lượng được.
Tuy nhiên do mình là dân amateur - kiến thức về PHP5 (cũng như Apache server,MySQL) có giới hạn nên quá trình tìm hiểu hơi khó khăn.Do đó mình lập thread này mong được giao lưu học hỏi để có thể cùng nhau nắm được một trong những framework mạnh nhất hiện nay: "Zend Framework 1.0".
Mong được các cao thủ về PHP(như bác pcdinh chẳng hạn) và các anh em yêu thích PHP ủng hộ thì thread này mới có chất lượng được.
Bài liên quan
Mình dùng bộ Appserv (gồm Apache,PHP và MySQL).
Tải tại đây: AppServ 2.5.8
Về Editor: dùng Zend Studio
Tải tại đây: ZendStudio-5.2.0
Thuốc: http://upviet.com/uploader/files/101...udio5Patch.zip
Về Zend Framework:
Tải ZendFramework-1.0.1
Tải API Guide
Tải Programmer's Reference Guide
Đây là bài viết giới thiệu về ZF của IBM: Understanding the Zend Framework, Part 1: The basics
Bài hướng dẫn rất hay về ZF: Tutorial: Getting Started with the Zend Framework
Tìm hiểu về mô hình MVC (mô hình 3 lớp) trong PHP: Understanding MVC in PHP
Ngoài ra còn có bài viết về coding standard của bác pcdinh: Coding Standards của VN
Tải file hướng dẫn tại đây: File PDF
Tải source code tại đây: http://akrabat.com/wp-content/upload...torial-141.zip
Cấu hình:
Kiếm dòng include_path = ... trong file C:\WINDOWS\php.ini .Thêm vào đường dẫn tới thư viện của ZF (ví dụ là include_path = ".;C:\AppServ\www\ZendFramework-1.0.1\library")
Sau khi tải về và chạy thử thì tôi gặp thông báo lỗi như sau:Internal Server Error.Đó là do sever ko có khả năng chạy các file .htaccess.Muốn vậy phải bật mod_rewrite lên (uncomment dòng LoadModule rewrite_module modules/mod_rewrite.so trong file http.conf)
Tuy nhiên tôi lại gặp 1 lỗi khác là "Uncaught exception 'Zend_Db_Adapter_Exception' with message 'The PDO extension is required for this adapter but not loaded'". Sau một buổi trời googling trên mạng và suy đoán tôi đã tìm ra cách khắc phục(chắc do chưa có kinh nghiệm nên khắc phục hơi lâu)
Vào file C:\WINDOWS\php.ini tìm kiếm dòng ;extension=php_pdo.dll và thay bằng 2 dòng
extension=php_pdo.dll
extension=php_pdo_mysql.dll
(thêm vào các extension để có thể sử dụng được PDO)
Sau đó lưu lại và restart apache server.
Cuối cùng cũng đã chạy xong được 1 demo của ZF.
Đọc kĩ bài sau:http://framework.zend.com/manual/en/...ler.quickstart
Sau đây là source code của mình: QuickStart
Lúc đầu khi chạy thì sẽ bị báo lỗi "Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'". Cái đó là do đối số truyền vào hàm Zend_Controller_Front::run() bị sai!! Ko hiểu vì sao lại có cái đường dẫn '/path/to/app/controllers' này?? Sữa lại thành '../application/controllers' thì sẽ hết lỗi ngay.
Ngoài ra cũng có thể thay hàm run() trên = 3 dòng code sau:
$front = Zend_Controller_Front::getInstance();
// Set the default controller directory:
$front->setControllerDirectory('../application/controllers');
$front->dispatch();
Muốn biết vì sao thì đọc cái này:
http://framework.zend.com/manual/en/...ler.front.html
Để hiểu rõ thêm về ví dụ vừa rồi,nên tham khảo thêm về kiến trúc của ZF: http://framework.zend.com/manual/en/...er.basics.html
Mình chưa bao giờ làm với khách hàng thật sự nên mình ko rành lắm(dân amateur mà lị!!). Nhưng theo mình nghĩ thì chuyện deploy là do mình chịu trách nhiệm (ko lẽ bắt khách hàng phải tự deploy?)
Cám ơn đã góp ý kiến!!
Trước tiên là phải cài ZS.Tải từ link của các bài post đầu tiên.Trong lúc cài nhớ chọn hỗ trợ PHP5.
Sau khi cài xong,chúng ta tạo thử 1 project
Project-->New Project... --> Đặt Name là zf_tutorial rùi Next --> Add path (chỉ đến folder zf_tutorial-141) rùi Finish!!
Chạy thử (Ctrl + F5) thì gặp lỗi "..failed to open stream.." .Đó là do ZS ko thể tìm ra đường dẫn của ZF(hoặc ZF kèm theo bộ ZS ko đầy đủ).Khắc phục bằng cách tìm đến file cấu hình php mà ZS sử dụng: Thưmụcàiđặt\ZendStudio-5.5.0\bin\php5\php.ini hoặc chạy lệnh phpinfo (mở bất cứ tài liệu mới nào rùi gõ vào <?phpinfo();?> ) sẽ thấy đường dẫn trong phần "Configuration File (php.ini) Path".Sau đó mở file lên và tìm dòng include_path và thay bằng đường dẫn đến library của ZF (ví dụ include_path = E:\AppServ\www\ZendFramework-1.0.1\library;.).
Khắc phục được lỗi trên chạy lại thì gặp lỗi "...'The mysql driver is not currently installed'..." ,đó là do file cấu hình ko load đủ các extension.Ta lại sửa file php.ini theo dạng như sau:
extension_dir=E:\AppServ\php5\ext
extension=php_dbase.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_sockets.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_curl.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pgsql.dll
extension=php_soap.dll
extension=php_sqlite.dll
Đoạn trên là load hết tất cả các extension giống như file cấu hình php.ini của Appserv.
Nhớ là extension=php_pdo.dll phải trước extension=php_pdo_mysql.dll nếu ko sẽ vẫn bị lỗi trên (tôi cũng chưa hiểu tại sao???).
Chạy lại lần nữa thì thấy ZS đã có thể "hiểu" ZF.Có điều hình như ZS ko hiển thị style được!??