Create custom library trong Zend Framewok 2

Create custom library trong Zend Framewok 2

Đã lâu rồi mới có dịp quay lại cái blog của mình mà viết thêm bài vào đây. Thời gian gần đây mình bị cuốn vào công việc, nên cũng ít chăm lo cho cái blog thân yêu này, hôm nay quay lại, tiếp tục chủ đề Zend Frameword 2 (ZF2) mà bấy lâu vẫn theo đuổi. Bài viết này sẽ giới thiệu tới các bạn kỹ thuật tạo một library riêng dùng chung cho tất cả module trong ZF2. Điều này chắc hẳn bạn nào từng làm việc với ZF1 sẽ dễ nhận ra ngay, và với cả mình, khi tiếp xúc với ZF2 cũng đã đặt ra câu hỏi là làm sao có một thư viện riêng mà các module đều xài được.

Việc đầu tiên, chúng ta sẽ tạo thêm 1 cấu trúc thư mục trong ứng dụng của mình như hình bên dưới.

Cấu trúc thư mục mới thêm

Như hình thì chúng ta sẽ tạo thêm thư mục MyNamespace/Model bên trong thư mục vendor (thư mục này có sẵn khi chúng ta dùng ZF2 Skeleton - Xem lại bài sau để biết cách cài đặt ZF2). Trong thư mục Model mới tạo này, chúng ta tạo một tập tin Test.php để tiện việc thí nghiệm cho bài này.

Tiếp theo, chúng ta bắt đầu viết code cho tập tin Test.php này như hình bên dưới.

Create custom library trong Zend Framewok 2

Code cho tập tin Test.php mới tạo

Ở đây, chúng ta sẽ khai báo class này thuộc namespace MyNamespace\Model vì trong ZF2 đa phần sẽ load class theo chế độ namespace có từ PHP 5.3 trở lên. Và trong class này, mình chỉ đơn giản tạo một function để echo 1 chuỗi lên màn hình. Như vậy là xong phần library, bước tiếp theo, chúng ta cần thông báo cho cơ chế AutoLoad trong Zend2 có thể hiểu được Namespace mới này của mình.

Để thực hiện điều này, bạn sử dụng tập tin init_autoloader.php (ngay thư mục gốc của ứng dụng ZF2) và bổ sung tại phần if ($zf2Path) như hình bên dưới.

Cấu hình autoload namespace mới

Tại đây, bạn sẽ khai báo thêm những namespace mới và đường dẫn tới namespace đó để có thể autoload trong ZF2.

Việc cuối cùng, chúng ta sẽ test thử vấn đề này trong 1 controller nào đó, và mình dùng luôn IndexController trong module Application để thực hiện điều này như hình bên dưới.

Test load namespace mới trong IndexController, module Application

Và khi bạn chạy ứng dụng, kết quả sẽ tương tự như sau

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Kích ngầm lắp đặt tuyến ống nước sạch D2400 mm băng sông Sài Gòn

Khởi công dự án cải thiện chất lượng nước sạch Tp. Hồ Chí Minh

Sawaco tổ chức lễ khởi công dự án Thiết kế, cung cấp và lắp đặt tuyến ống truyền tải nước sạch D2400 mm từ ngã tư Bình Thái đến giao lộ Điện Biên Phủ và Nguyễn Bỉnh Khiêm, Tp. Hồ Chí Minh.

Hướng dẫn sử dụng Display Suite and Views trong Drupal

Hướng dẫn sử dụng Display Suite and Views trong Drupal

Display Suite is one of our very favorite Drupal modules.

Đào tạo SEO, Đào tạo SEO cho công ty

Đào tạo SEO, Đào tạo SEO cho công ty

Đào tạo SEO 2012 cung cấp các chương trình Đào tạo SEO cá nhân, Đào tạo SEO doanh nghiệp. Các khóa Đào tạo SEO chuyên biệt: Đào tạo SEO Joomla!; Đào tạo SEO Wordpress, Đào tạo SEO Drupal, Đào tạo SEO web thương mại điện tử, Đào tạo SEO blog…. Nhiều chương trình khuyến mãi học phí Đào tạo SEO 2012 đang chờ quý khách.

Công ty diệt chuột T&C

 

Diet con trung