Thursday, July 28, 2011

Tổng quan Zend Framework

Link download (pdf): http://www.mediafire.com/?2gjimtnjj5n058k
Link download báo cáo về ZF: http://www.mediafire.com/?tpvuc4vh16ibf1a.

Link download luận văn về ZF: http://www.mediafire.com/?wk4yug8q9f3ugis.
ZEND FRAMEWORK

A. Giới thiệu Zend Framework:

1. Zend Framework là gì?

- Zend Framework là sản phẩm framework mã nguồn mở được phát triển trên nền PHP 5.0 theo chuẩn hướng đối tượng.
- Zend Framwork là framework theo mô hình MVC.
- Zend Framework có hỗ trợ làm việc với Tempalate engine kết hợp cùng tầng View

2. Zend Framework làm được những gì?

- Tạo ứng dụng web theo mô hình chuẩn MVC
- Url tiêu chuẩn, ngắn gọn
- Hỗ trợ phân quyền tới từng Action
- Có các thành phần thư viên hỗ trợ API của các nhà cung cấp như Google, Yahoo, Flick
- Quản lý code dễ dàng, liệt kê và lấy các truy vấn history
- Dễ dàng phát triển thêm các ứng dụng nhúng, sử dụng Plugins

3. Ưu khuyết điểm của Zend Framework:

ZF là một PHP framework ra đời khá trễ, tiếp thu những tinh hoa và khắc phục những sai lầm mà các framework trước mắc phải.

Ưu điểm:

ZF được viết theo kiểu OOP nên nó thừa hưởng các thế mạnh của kiểu viết này. Các lớp của ZF được BA (Business Analysis) rất chuẩn và khi cần mở rộng bạn có thể dùng thể dùng tính chất thừa kế của OOP. Nói chung là chúng ta không phải chỉnh sửa core của ZF.
Hầu như các version mới của ZF ko có nhiều thay đổi trong core nên ta có thể dễ dàng update.
ZF tích hợp được gần như tất cả các thư viện PHP và các CMS khác để sử dụng. VD: Smarty - Pear - FCKEditer - Drupal ..
Các viết của ZF rất thân thiện và đơn giản. Tích hợp những mới nhất của lập trình web như: JSON - Search - Syndication - Web Services...
ZF được sử dụng trong các dự án lớn và có kế hoạch phát triển dài lâu

Khuyết điểm:

Mất nhiều thời gian để tìm hiểu về thư viện của ZF
Một số lớp chưa ổn định, có sự thay đổi, gây khó khăn cho người sử dụng khi cập nhật các phiên bản.

4. Quá trình phát triển của Zend Framework:

Trải qua giai đoạn hình thành và phát triển, Zend Framework hiện tại có 11 phiên bản, và phiên bản mới nhất hiện tại là 1.11.
Các phiên bản đã phát hành: Zend Framework 1.11, Zend Framework 1.10, Zend Framework 1.9, Zend Framework 1.8, Zend Framework 1.7, Zend Framework 1.6, Zend Framework 1.5, Zend Framework 1.0, Zend Framework 0.9, Zend Framework 0.8, Zend Framework 0.6

B. Một số thành phần trong ZF:

- Zend_Acl: giúp chúng ta phân quyền cho ứng dụng chi tiết trên từng action, controller và module
- Zend_Auth: cung cấp một API cho việc chứng thực tài khoản khi đăng nhập vào hệ thống
- Zend_Cache: giúp cho các ứng dụng không phải sử dụng CPU hoặc truy xuất vào database quá nhiều
- Zend_Controller: giúp lấy các request từ phía Client và thực thi nó bằng các Action
- Zend_Currency: xử lý tất cả các vấn đề liên quan đến tiền tệ
- Zend_Date: xử lý tất cả các vấn đề liên quan thời gian
- Zend_Db: Dựa trên đối tuợng PDO (PHP Data Objects), cung cấp cách thức giao tiếp với database
- Zend_Feed: xử lý với Rss và Atom feeds
- Zend_File: cung cấp, hỗ trợ mở rộng việc upload và download của các tập tin. Nó gắn liền với kiểm tra các chức năng của tập tin.
- Zend_Filters: lọc dữ liệu trước khi thực hiện một quá trình xử lý nào đó
- Zend_Form: đơn giản hóa việc tạo form và xử lý các ứng dụng trên website.
- Zend_Local: là một thư viện trả lời cho câu hỏi làm sao ứng dụng c1o thể sử dụng trên toàn thế giới
- Zend_Pdf: Tạo và xử lý các file PDF
- Zend_Search: là một lớp cung cấp cho chúng ta các phương thức search trên nội dung của các tập tin lưu trữ thông tin.
- Zend_Translate: là giải pháp cho các ứng dụng đa ngôn ngữ
- Zend_Validate: dùng để kiểm tra dữ liệu nhập vào có phù hợp với yêu cầu hay không
- Zend_View: chính là tầng View trong mô hình MVC, giúp chúng ta hiển thị những kết quả trong xử lý Controller và Models ra bên ngoài

C. Mô hình MVC trong ZF:

Bất cứ một ứng dụng nào được xây dựng theo mô hình MVC nào thì cũng điều phải tuân thủ những nguyên tắc mà mô hình MVC mang lại.
Model : Cung cấp tập hợp các lớp được trừu tượng hóa sử dụng cho việc truy xuất dữ liệu. Lớp phục vụ: Zend_DB, Zend_DB_Table
View : Định nghĩa các thông tin hiển thị phía người dụng sau khi được xử lý và trả về từ controller. Lớp phục vụ: Zend_View
Controller : Kiểm soát dữ liệu vào ra. Xuất thông tin ra tầng View khi được thực thi. Lớp phục vụ: Zend_Controller

Hình ảnh
Hình 1: Mô hình MVC trong Zend Framework

Khi có một request từ người dùng. Controller sẽ tiếp nhận request, phân tích request, sau đó sẽ phân luồng request để gọi đến Model và View tùy vào request mà người dùng đã gửi. Khi người dùng gửi một request từ browser thì nơi đầu tiên tiếp nhận request đó đầu tiên là controller. Tùy vào request, mà controller sẽ phân luồng đến model và view.
Ngoài ra, mô hình MVC trong ZF còn có thể được tổng quát hóa bằng mô hình sau:

Hình ảnh
Hình 2: Mô hình MVC trong Zend Framework

Tóm lại, một ứng dụng được xây dựng theo mô hình MVC hoạt động tổng quát như sau: Tiếp nhận request từ trình duyệt dưới dạng HTML. Sau đó được biên dịch thông qua Java Servlet → controller tiếp nhận, phân tích request để phân luồng đến model và view. Cuối cùng trả về trình duyệt dưới dạng một response HTML.

D. Luồng xử lý công việc trong ZF

1. Luồng xử lý công việc trong Zend Framework:

Hình ảnh
Hình 3: Quy trình làm việc trong Zend Framework

Giải thích quy trình:
Bước 1: Một yêu cầu được tạo ra và đối tượng Request Object được tạo ra
Bước 2: routeStartup được nạp
Bước 3: Router xử lý yêu cầu
Bước 4: routerShutdown được nạp
Bước 5: dispatchLoopStartup được nạp
Bước 6: Qui trình gửi thông tin được bắt đầu
Bước 7: preDispatch được nạp
Bước 8: Dispathcher gọi Action Controller
Bước 9: Action Controller tạo Response Object
Bước 10: postDispatch được nạp
Bước 11: Nếu có Action nào được gọi thì quay lại bước 7
Bước 12: dispatchLoopShutdown được nạp
Bước 13: Response được gửi lại

2. Cách làm việc và xây dựng lớp trên Zend Framework?

a. Các lớp được phân cấp theo tên thư mục:
- Trên thực tế, Zend Framework dựa vào thư viện để đọc và làm việc trên các lớp một cách rất cụ thể. Bởi đường dẫn chi tiết của chúng đã được thể hiện rõ nét ngay trên tên của chúng.
- Ví dụ:
+ Với class Zend_Db_Table ta có thư mục Zend/Db/Table.php
+ Với class Zend_Application_Bootstrap_Bootstrapper ta có thư mục library/Zend/Application/Bootstrap/Bootstrapper.php

b. Controller thể hiện trên URL:

http://localhost/zfdemo/admin/: Tìm tới indexAction trong adminController để thực thi
http://localhost/zfdemo/admin/login: Tìm tới loginAction trong controller adminController để thực thi
http://zend.com/news/views/id/15: Tìm tới vewsAction trong controller newsController và get id=15 để thực thi.

E. Cấu trúc thư mục của một project trong ZF (một module):

Đối với mỗi project được xây dựng trong ZF đều có cấu trúc thư mục của một project tương tự như sau:

Hình ảnh
Hết .........
Bài viết cung cấp 1 cái nhìn tổng quan về ZF. Giúp ai đã từng "ăn với ZF", "ngủ với ZF", hay thậm chí dành cho những ai vừa mới tiếp xúc với Framework này có 1 kiến thúc sơ bộ về ZF.
tham khảo : http://www.zend.vn/forum/viewtopic.php?f=5&t=1338&start=0

No comments:

Post a Comment

Nội dung nhận xét của bạn đang được kiểm duyệt.
Vui lòng chờ ....