Tìm hiểu Zend Framework 2

Giới thiệu

Zend Framework 2 là một PHP  Framework mã nguồn mở được xây dựng và phát triển bởi các chuyên gia PHP hàng đầu .  Zend Framework 2 được viết theo chuẩn một mô hình MVC  và 100% hướng đối tượng toàn diện và sử dụng nhiều tính năng mới có trong các phiên bản PHP như namspace, late static binding, lambda và closures trên nền PHP 5.3+. Với một bộ thư viện hỗ trợ đồ sộ và đầy đủ, các developer có thể dễ dàng sử dụng các module có sẵn để xây dựng nhanh chóng một hệ thống website trong một thời gian ngắn.  Phiên bản Zend Framework 2.0 được phân phối chính thức vào ngày 6 tháng 8 năm 2010 và hiện nay phiên bản mới nhất Zend Framework 2.3.3
 
Zend Framework 2 được phát triển từ Zend Framework 1, những lớp thư viện xử lý của chúng dường như rất giống nhau nên nếu bạn đã từng học qua ZF1 thì cũng có thể dễ dàng gặp các lớp tương tự tại ZF2. Tuy vậy, nhưng ZF2 lại hoàn toàn khác so với ZF1 bởi nó cung cấp một cấu trúc khung xử lý hoàn toàn mới bao gồm nhiều thành phần khác biệt như event manager, module manager, service manager…. loại bỏ hoàn toàn kỹ thuật singleton.  Đây là một bộ PHP framework thành công với 15 tỉ lượt tải.
 
Xem thêm :

zend-framework-2

Hiện tại, PHP Framework có rất nhiều và có những cộng đồng phát triển riêng, nổi bật như : Yii, Larvarel, Phalcon,… chúng đều hỗ trợ rất tốt cho developer cho việc xây dựng và phát triển hệ thống website nhưng rất khó tùy biến hoặc hỗ trợ không đầy đủ. Với Yii 1, cung cấp các component như button, captcha… chúng được tạo dựng một cách tự động khi được tạo khiến lập trình viên thường khó tùy biến và tối ưu; hay với Phalcon mới framework khá mới, thư viện của nó được nén lại thành đuôi .dll mở rộng để tích hợp vào môi trường PHP điều này làm người phát triển rất khó khám phá code nguồn của thư viện này và những gì mà nó đang làm, không thể kiểm soát. CodeIgniter khá gọn nhẹ nên những module hỗ trợ rất ít và người lập trình viên hầu như phải tự phát triển toàn bộ mất rất nhiều thời gian và công sức. Để giải quyết tất cả các trở ngại trên thì Zend Framework 2 là một sự lựa chọn không hề tồi cho các developer, các developer có thể xây dựng với nhiều module xây dựng sẵn từ cộng đồng và tích hợp chúng  vào hệ thống hoặc có thể xây dựng các module đặc biệt dành riêng cho dự án phát triển. Công đồng zend framework cũng đang thu hút được rất nhiều người tham gia, những khóa học và đào tạo chứng chỉ zend được rất nhiều developer tham gia.
 
Nhà tài trợ chính của dự án Zend Framework 2 ‘Zend Technologies, nhưng nhiều công ty đã góp phần thành phần hoặc các tính năng quan trọng như Google, Microsoft, StrikeIron đã hợp tác với Zend để cung cấp giao diện với các dịch vụ web và các công nghệ khác mà họ muốn thực hiện có sẵn cho các nhà phát triển Zend Framework 2.

 

Đặc điểm nổi bật của Zend Framework 2

Zend Framework 2 cung cấp khung dự án mẫu ZendSkeletonApplication-master giúp xây dựng – phát triển dự án với thư viện ZF2 một cách nhanh chóng và hiệu quả. ZendSkeletonApplication được lưu trữ trên Github dễ dàng phân phối và cài đặt.

Zend Framework 2 sử dụng Pyrus và Composer giúp cài đặt và cập nhật các gói thư viện phụ thuộc, khi đó người dùng sẽ dễ dàng quản lý và gỡ bỏ các thư viện cần thiết.

Khả năng mở rộng và tích hợp thêm các module, thư viện riêng của người lập trình viên. Hệ thống load mặc định trong ZF2 là theo chuẩn PRS-0. Hiện tại phiên bản mới nhất của ZF2 cũng đã tích hợp cả chuẩn PRS-4 để giúp lập trình viên có thể dễ dàng mở rộng hệ thống. 
 
Giúp quản lý và cấu hình toàn bộ tiến trình, dịch vụ chạy trong hệ thống và các tài nguyên khác thông qua ServiceManager. Đây là một thành phần rất quan trọng trong Zend Framework2, nó được xem như một bộ não kiểm soát toàn bộ dịch vụ khi dự án bắt đầu khởi chạy. 
 
Trong Zend Framework 2 có một thành phần tương đối mới mẻ đó là event. Có các event chính đó là ModuleEvent, ViewEvent và MvcEvent, chúng được quản lý bởi một EventManager. Khi hệ thống load tới các mốc của event, eventmanager sẽ có nhiệm vụ gọi các listener được gắn tương ứng với mốc event đó để thực thi theo độ ưu tiên được chỉ định. Đây cũng là một thành phần khá hay mà Zend Framework 2 cung cấp cho lập trình viên để có thể dễ dàng thay đổi quá trình load mặc định do nó cung cấp. Ở những bài viết sau mình sẽ nói chi tiết hơn về phần này. 
 
Zend Framework 2 giúp người dùng có thể giúp lập trình viên tiếp cận một mô hình MVC hướng đối tượng chuẩn nhất. Lập trình viên sẽ quen dần với cách lập trình hướng đối tượng trong PHP, thường thì các lập trình viên php truyền thống thường viết các module xử lý hướng function và khả năng mở rộng là rất khó khăn hoặc hạn hẹp, khó bảo trì và phát triển. 
 
Hệ thống module được xây dựng đầy đủ, xử lý và giải quyết nhiều bài toán một cách tối ưu nhất , các lập trình viên có thể dùng nó để xây dựng dự án riêng một cách nhanh chóng và hiệu quả. 
 
 

Nhược điểm đến từ Zend Framework 2? 

Do bộ thư viện module Zend Framework 2 khá lớn, nên việc tiếp cận và sử dụng nó là rất khó khăn cho người mới tiếp cận. Nếu bạn hiểu một framework nào đó rồi, thì có thể tiếp cận dễ dàng hơn. Còn nếu không thì bạn sẽ đặc biệt rất khó khăn trong việc tìm hiểu và sử dụng nó. Tôi khuyên là các bạn trước khi tìm hiểu Zend Framework2 phải có kiến thức base về OOP và MVC, đó là những điều tối thiểu. 
 
Bài toán hiệu suất của Zend Framework 2 đang là một trở ngại lớn cho các lập trình viên, bởi quá trình cấu hình và khởi động của ZF2 tự động tạo các dịch vụ mặc định quá lớn làm nó chiếm khá nhiều RAM và thời gian xử lý. Rất nhiều trang thống kê về hiệu suất của các framework PHP, đều cho thấy ZF2 đều có điểm rất thấp so với các framework khác như : Yii, Phalcon,… 
 
Hiện tại, chưa có tài liệu cho các bạn lập trình yêu thích Zend Framework 2 chủ yếu là tiếng Anh nên việc tiếp cận cũng mất khá nhiều thời gian. Tài liệu Tiếng Việt rất ít ỏi và hiếm hoi không chính thống, thường làm các bạn mới tiếp cận rất khó khăn và hoang mang. Công đồng ZF1 ở Việt Nam cũng khá đông và mạnh, nhưng công đồng ZF2 thì chưa nhiều bởi nhiều lý do, nên công đồng hỗ trợ từ ZF2 yếu. 
 

Công việc Zend Framework 2?

Tuy còn nhiều điểm bất lợi, nhưng đang có rất nhiều công ty vẫn tuyển dụng các lập trình viên Zend Framework 2 làm các dự án nước ngoài. Các nhà tuyển dụng dường như lấy kiến thức hiểu biết về các framework của các lập trình viên là một trong những thước đo đánh giá về khả năng tư duy và khả năng thích ứng với công việc họ đang cần. Nếu bạn là một người đam mê lập trình và hướng theo những quy chuẩn, thì Zend Framework 2 chính là một lựa chọn không hề tồi. Dự đoán rằng, trong tương lại sẽ có rất nhiều các dự án về Zend Framework 2.