Một phương pháp có thể nâng cao tính năng bảo trì của ứng dụng bằng việc tách riêng code của chúng ta thành ba phần Model-View-Controller :
Mình xin nhắc lại mô hình kiến trúc MVC :
Một phương pháp có thể nâng cao tính năng bảo trì của ứng dụng bằng việc tách riêng code của chúng ta thành ba phần Model-View-Controller : 2.1.2.1. Model Model Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình ứng dụng. Thành phần model này được chúng ta xây dựng thành các lớp kế thừa từ lớp Zend_Db_Table hoặc Zend_Db_Table_Abstract được đặt trong thư mục application/models của ứng dụng. Mổi lớp sẽ đảm nhận việc kết nối và thao tác đến table tương ứng trong cớ sở dữ liệu. 2.1.2.2. View Là phần giao diện với người dùng. bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa…, để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống. View làm nhiệm vụ render trang web từ các action do controller truyền sang kết hợp với dữ liệu từ model, có thể hiểu View đóng vai trò như là template render. Thành phần view này được đặt trong thư admin/views và default/views . Trong thư mục views này có 3 thành phần : Scripts : Chứa các thư mục gồm các file ánh xạ đến các controller/action để hiển thị trang giao diện tương ứng . helpers : Trong thư mục này chứa các các lớp mà chúng ta tạo ra và các lớp này sẽ được nạp tự động cho đối tượng Zend_view thông qua Zend_View_Helper để giúp chúng ta dễ dàng gọi đến hàm được xây dựng trong lớp này mà không cần phải khai báo trước vì nó được xem là một thành phần trong thư viện của Zend (được nạp tự động). filters : Tương tự như thành phần helpers,filters chứa các lớp giúp cho chúng ta có thể thay đổi hoặc xóa những dữ liệu không mong muốn trong quá trình nhập liệu thông qua bộ lọc này. 2.1.2.3. Controller Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người dùng và cập nhật, thao tác trên dữ liệu theo đầu vào nhận được và điều khiển việc chọn phần “Hiển thị” thích hợp để truyền dữ liệu tới người dùng. Controller làm nhiệm vụ điều hành trang web của bạn, 1 trang web có thể có nhiều module , 1 module có thể có nhiều controller. Một controller sẽ gồm nhiều action . Zend Framework sử dụng đối tượng Front Controller để quản lý các Request được gởi đến Web server. Và dựa trên Request đó, nó sẽ gọi các lớp xử lý Model và trả về kết quả trình bày với các lớp View. Ví dụ: Trong website eshop sẽ có UserController bao gồm các action như:loginAction,registerAction,displayprofileAction,… Bootstrap : Ngoài ra trang web của bạn cần có 1 file quan trọng chính là bootstrap, làm nhiệm vụ “đón đầu” tất cả các request vào, sau đó khởi tạo controller và dispatch request đến controller tương ứng. Điều đó có nghĩa là thay vì bạn tổ chức với đầy đủ chức năng từ kết nối đến database , xữ lý và hiển thị kết quả ra trình duyệt chỉ trong một file thì với mô hình kiến trúc MVC này bạn tách làm 3 thành phần riêng biệt (có thể ví như việc phân công lao động theo chuyên môn của mổi người vậy) mổi phần sẽ đảm nhiệm môt nhiệm vụ đặc trưng của mình ( một thành phần (có thể nhiều class ) cho kết nối , xữ lý database - một file lo việc hiển thị kết quả ra trình duyệt và một cho xữ lý điều khiển tương tác hai thằng còn lại . ) 2.1.2.5. Cơ chế hoạt động của ZF Trong ZF Tất cả các yêu cầu (request) đều được xữ lý tập trung,tất cả các request đều được front controller gửi (dispatch)tới controller actions mổi khi phát hiện có bất kỳ request nào xãy ra. Zf còn hổ trợ plugin ở mọi cấp xữ lý và bạn có thể xây dựng plugin một cách linh động để bạn có thể thay đổi những thành phần cụ thể cho ứng dụng riêng của bạn để nó không phải làm quá nhiều công việc . Zend_View là hệ thống view template trong Zf,nó cung cấp một hệ thống template PHP cơ bản .Không giống như Smarty,Zend_View cung cấp một hệ thống Plugin helper cho phép chúng ta có thể trình bày code một cách sáng tạo để có thể tái sử dụng .nó được thiết kế để cho phép chúng ta override các yêu cầu cụ thể và thậm chí nó có thể được thay thế hoàn toàn bằng một hệ thống template khác chẳng hạn như Smarty . Zend_Db_Table thiết lập một cách thức truy cập vào một table trong database để tạo thành một thành phần model cơ bản trong mô hình kiến trúc MVC . Hình sau sẽ giải thích cho chúng ta thấy cơ chế hoạt động này : khi có request từ người dùng thì lập tức bootstrap file (index.php) sẽ đón nhận request này và giao nhiệm vụ điều khiển hướng truy cập cho Front Controller ,Front Controller sẽ chọn và gọi action tương ứng .sau đó Action Controller này tương tác với Zend_Db_Table (Model) và trả về kết quả xử lý cho Zend_View (View) .và cuối cùng hiển thị kết quả (response) ra trình duyệt . Địa chỉ Url định tuyến mặc định : Khi có một request được gửi thì request này mặc định có địa chỉ URL : CODE
Controller ở đây chính là một lớp (class) được đặt trong thư mục Controllers ,Acion thực chất là một hàm được định nghĩa trong Controller đó . |
Thêm vào trang Google +
Số lần xem : 5147
Đánh giá