[ZF2] Cấu hình Routing và Controllers – Phần 2

Trong bài viết Tạo module trong Zend Framework 2, chúng ta đã biết được các dự án Zend Framework 2 có thể xây dựng – mở rộng bằng những module hỗ trợ; và tôi đã hướng dẫn các bạn tạo một module Album giúp quản lý – tìm kiếm bộ sưu tập nhạc, nhưng nó vẫn chưa thể hoạt động bởi chưa có bất cứ cài đặt cấu hình, xử lý nghiệp vụ nào. Trong bài viết này, chúng ta sẽ xây dựng một trang quản lý rất đơn giản như thêm – xóa -sửa và hiển thị toàn bộ sưu tập nhạc. Do đó chúng ta sẽ tạo ra các trang như sau đây:

Trang Mô tả
Trang chủ Trang này sẽ hiển thị danh sách các album cung cấp liên kết để chỉnh sửa và xóa chúng. Ngoài ra, một liên kết để cho phép thêm album mới sẽ được cung cấp.
Thêm album mới
Trang này sẽ cho phép chúng ta thêm một album mới.
Chỉnh sửa album Trang giúp chỉnh sửa thông tin của album
Xóa album Trang thực hiện xóa những album không cần thiết

Trước khi thiết lập các tập tin cần thiết, chúng ta cần phải hiểu được các trang sẽ được tổ chức như thế nào để có thể dễ dàng phát triển trong zf2. Mỗi một trang được hiển thị tương ứng với một action cụ thể, những action này là các phương thức xử lý chứa trong controller của từng module, chúng ta sẽ nhóm các action vào trong một controller.

Chúng ta sẽ có tất cả 4 trang để áp dụng cho toàn bộ album nhạc tương ứng với 4 action xử lý trong một controller duy nhất là AlbumController đặt trong module Album.

Trang Controller Action
Trang chủ AlbumController index
Thêm album mới AlbumController add
Chỉnh sửa album AlbumController edit
Xóa album AlbumController delete

 Các bạn sẽ cấu hình cài đặt module Album trong tập tin module.config.php như sau:

Hệ thống route sẽ giúp chúng ta xác định được controller và action cần xử lý. Ở đây, tôi khai báo một route có tên là album thuộc kiểu segment (Chúng ta sẽ tìm hiểu chi tiết về phần Routing trong các bài viết tiếp theo), và route chỉ định là ‘/album[/:action][/:id]‘ nó giúp so khớp tất cả các URL được bắt đầu bởi /album. Thành phần ‘[/:action][/:id]‘ sẽ chỉ đinh action xử lý có thể là add/edite/delete, chúng được bao bởi cặp dấu ‘[ ]‘ để xác định đây là một thành phần có thể có hoặc không xuất hiện trên URL. Cấu hình ‘constraints‘ là một ánh xạ giữa tham số và biểu thức chính quy, giúp valid các giá trị mà tham số nhận được, ví dụ như action có thể chấp nhận các giá trị bởi các chữ cái la-tin và số

URL Trang Action
/album Trang chu hiển thị album index
/album/add Thêm album mới add
/album/edit/2 Chỉnh sửa album có id = 2 edit
/album/delete/5 Xóa album có id = 5 delete

Tạo AlbumController

 Trong Zend Framework 2, các lớp controller sẽ được đặt tên theo quy tắc {Controller Name}Controller, các tên của lớp được theo sau bởi ‘Controller‘ và tên lớp phải được bắt đầu bởi chữ cái la-tin viết hoa. Các lớp controller sẽ được trong các tập tin có tên tương tự tên lớp {Controller Name}Controller.php và được đặt trong thư mục module/Album/src/Album/Controller . Các action được đặt trong lớp có quy tắc đặt tên {Action Name}Action, chúng là những phương thức truy nhập public và tên action được viết thường.

Lưu ý:

  • Bạn phải đảm bảo module Album đã được khai báo trong phần ‘modules‘ của tập tin cấu hình ‘config\application.config.php‘. Và bạn cũng phải cung cấp lớp Module cho module Album để được xác nhận với mô hình MVC.
  • Đã khai báo controller ‘Album\Controller\Controller’ trong phần ‘controllers‘ của tập tin module.config.php

Chúng ta đã thiết lập 4 action mà chúng ta muốn sử dụng. Các URL cho mỗi action là:

Phương thức Phương thức xử lý
http://zf2-tutorial.localhost/album Album\Controller\AlbumController::indexAction
http://zf2-tutorial.localhost/album/add Album\Controller\AlbumController::addAction
http://zf2-tutorial.localhost/album/edit Album\Controller\AlbumController::editAction
http://zf2-tutorial.localhost/album/delete Album\Controller\AlbumController::deletedAction

Bây giờ chúng ta có một bộ định tuyến router làm việc và các action được thiết lập cho mỗi trang của ứng dụng.

Khởi tạo thành phần View

Mỗi một action sẽ trả ra một view tương ứng để hiển thị nôi dung. Những tập tin hiển thị này sẽ được thực hiện bởi các DefaultViewStrategy nó sẽ nhận các biến dữ liệu trả ra từ controller – action để hiển thị dữ liệu. Các tập tinh view script được lưu trữ trong thư mục trong module/Album/view/album/album và tên được trùng với tên action.

  • module/Album/view/album/album/index.phtml
  • module/Album/view/album/album/add.phtml
  • module/Album/view/album/album/edit.phtml
  • module/Album/view/album/album/delete.phtml

Kết luận

Như vậy , chúng ta đã hoàn tất quá trình cấu hình cài đặt routing – controller – view để chuẩn bị cho các bước xây dựng tiếp theo như thao tác với database, hiển thị dữ liệu, tiếp nhận các yêu cầu gửi lên… Để có thể hoàn tất quá trình cài đặt mời các bạn đọc theo dõi những bài viết về Zend Framework của kienthucweb.net