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

 
Fast, Powerful & Elegant Web Browser for Android – Dolphin Browser HD

Fast, Powerful & Elegant Web Browser for Android – Dolphin Browser HD

Dolphin Browser HD was definitely the browsing app that pioneered other browsers on the Android platform.

Code Drop và PreviousNext hợp tác tại Australia

Code Drop và PreviousNext hợp tác tại Australia

Code Drop was founded in 2012 by two influential Drupal Developers

20 Best Sites to Download Free E-Books

20 Best Sites to Download Free E-Books

These days Internet is one of our best friend, you can get anything and everything on internet. Also Books are really helpful to us with books we keep our self up to date.

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

 

Diet con trung