[ZF]: Tìm hiểu quy trình sử dụng layout trong Zend Framework

Trong bài trước, chúng ta đã nói về quy trình hoạt động của zend view. Và qua đó, ta hoàn toàn kiểm soát được việc dữ liệu của view hiển thị thế nào với các thẻ như doctype, meta, title, link css, link js. Tiếp tục ở phần này, tôi sẽ trình bày phương pháp (hay còn gọi là master page) trong ứng dụng như thế nào.

Trước hết, ta cần hiểu về quy trình sử dụng trong .

Khi sử dụng layout, thì mọi dữ liệu của view đểu sẽ hiển thị trong vùng chỉ định của layout đó mà chúng ta không cần phải khai báo chúng trong từng view một. Như vậy, nói cách khác chúng ta sẽ không cần quan tâm đến bộ cục của layout khi làm việc với view. Mà chỉ quan tâm đến dữ liệu, vai trò mà view đó thể hiện như thế nào mà thôi.

Để làm được điều đó, trong file application.ini ta thêm vào 2 dòng sau:

Ý nghĩa của 2 dòng này như thế nào ?.

+ Dòng đầu tiên cho ta biết file chứa layout của chúng ta tên là layout
+ Dòng thứ hai cho ta biết đường dẫn tới file layout này như thế nào.Với 2 dòng ở trên ta hoàn toàn có thể cấu hình thay đổi tên và đường dẫn theo ý thích của riêng ta một cách dễ dàng.
Kế tới, ta tạo thư mục layouts/scripts. Và tạo file layout.phtml trong thư mục này với nội dung như sau:

Bạn thấy đấy, cấu trúc của nó giống với phần view ở bài tìm hiểu cơ bản về zend view phải không nào. Chỉ có sự khác biệt là phần nội dung body. Chúng ta dùng cú pháp:

Cú pháp này sẽ gọi các view của controller vào để hiện thị trên bố cục này.

Vậy trong IndexController.php ta viết đoạn lệnh như sau:

Ở đoạn code phía trên, tôi sử dụng phương thức init(). Đây là phương thức mặc định sẽ được gọi đầu tiên khi chúng ta tiến hành chạy controller này. Và dĩ nhiên, khi bạn chạy bất kể một action nào thì init() cũng sẽ được gọi trước hết. Và trong ví dụ này, công việc của init() là hiển thị thông tin tiêu đề của trình duyệt là QHOnline- Zend Layout.

Khi bạn chạy ứng dụng, sẽ thấy view của chúng ta được nằm trong một bố cục mà bạn đã bố trí một cách hợp lý.

Ngoài cách cấu hình trực tiếp trong file application.ini ra, chúng ta cũng có thể cấu hình và gọi trực tiếp chúng bởi việc gọi nạp trong các controller như sau:

Như bạn thấy đấy, ở trên tôi tạo ra một mảng chứa 2 tham số là layout để chứa tên file và đường dẫn của layout nhằm gọi tới thư mục chứa layout. Sau đó tôi gọi lớp Zend_Layout đồng thời gọi phương thức starMVC() để truyền tham số mà chúng ta vừa thiết lập trong mảng.

Khi chạy ứng dụng thì kết quả hiển thị so với phương pháp cấu hình trong application là như nhau.

Vậy sự khác biệt giữa hai phương pháp cấu hình này là gì ?.

+ Phương pháp cấu hình bằng application.ini cho phép ta chỉ thiết lập một lần, sau đó các controller không cần phải thiết lập lại. Nhưng chúng chỉ cố định duy nhất một layout cho tất cả ứng dụng.

+ Phương pháp cấu hình trực tiếp tuy phải cấu hình trong từng controller nhưng có thể cho ta tùy chọn thay đổi theo chiều hướng multi layout cho từng module hoặc controller mà ta muốn một cách dễ dàng.

Sử dụng 2 phương pháp này thế nào và ra sao là còn tùy vào sự linh động và sáng tạo trong lập trình của các bạn. Kết thúc bài này, tôi đã hướng dẫn bạn sử dụng layout trong zend framework để tạo master page đồng thời hướng tới khái niệm multi layout cho ứng dụng với những tùy chọn mà bạn mong muốn. Trong bài tới, chúng ta sẽ cùng tìm hiểu về tương tác cơ sở dữ liệu trong zend framework ra sao, qua đó vận dụng model trong zend framework như thế nào.

Cùng Nội Dung:

Liên Quan Khác

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">