Tìm hiểu về yii framework

**1. Khái quát **

Vào tháng 12 năm 2008, một PHP Framework mới được cộng đồng biết đến đó là Yii Framework với phiên bản 1.0. Có rất nhiều Framework được phát triển vào năm 2008 nhưng Yii được mọi người nhiệt tình công nhận vì Qiang Xue là người đã thành lập ra Prado Framework cũng chính là tác giả của Yii Framework. Những năm kinh nghiệm và những nhận xét của người sử dụng, đang cần một Framework PHP dễ dàng hơn, mở rộng hơn và hiệu quả hơn để đáp ứng nhu cầu ngày càng tăng của các nhà phát triển ứng dụng Web.

Vì vậy Yii Framework đã ra đời và đáp ứng các yêu cầu trên cho cộng đồng Web Yii là từ viết tắt của từ Yes, it is! Hoặc cũng có thể là viết ngắn gọn 3 chữ cái đầu của Easy (dễ dàng), Efficient (hiệu suất) và Extensible (khả năng mở rộng). Yii là 1 PHP Framework mã nguồn mở và hoàn toàn miễn phí, có hiệu năng cao, giúp bạn phát triển tốt nhất các ứng dụng Web 2.0. Yii cho phép tái sử dụng tối đa các thành phần của ứng dụng để tăng tốc độ viết ứng dụng. Yii là một PHP Framework được xây dựng để phát triển các ứng dụng Web quy mô lớn dựa trên nền tảng component (thành phần sử dụng lại). Yii cho phép tái sử dụng tối đa các thành phần của hệ thống để tăng tốc độ viết ứng dụng.

Giống như hầu hết các PHP Framework, Yii là một MVC Framework.

Yii, nói chung, là một Framework phát triển ứng dụng Web nên có thể dùng để viết mọi loại ứng dụng Web. Yii rất nhẹ và được trang bị giải pháp cache tối ưu nên nó đặc biệt hữu dụng cho ứng dụng Web có dung lượng dữ liệu trên đường truyền lớn như web portal, forum, CMS, e-commerce, v.v.

Để chạy 1 ứng dụng được viết bằng Yii, bạn cần Web Server hỗ trợ PHP 5.1.0 hoặc phiên bản mới hơn.

Với developer muốn phát triển Yii, kiến thức lập trình hướng đối tượng (OOP) rất hữu ích vì Yii là một Framework OOP thuần túy.

2. Sử dụng Yii tốt nhất khi nào ?

Yii, nói chung, là một framework phát triển ứng dụng Web nên có thể dùng để viết mọi loại ứng dụng Web. Yii rất nhẹ và được trang bị giải pháp cache tối ưu nên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trên đường truyền lớn như web portal, forum, CMS, e-commerce, v.v.

3. Yii có hiệu xuất cao?

Yii đã được thiết kế cẩn thận để cho phép gần như tất cả đoạn code được phát triển và chỉnh sửa để đáp ứng bất kỳ yêu cầu nào. Nếu bạn muốn phát triển code mở rộng hơn thành các công cụ hữu ích cho các nhà phát triển khác sử dụng, Yii cung cấp theo các bước và hướng dẫn để giúp bạn dễ dàng phát triển. Điều này cho phép bạn đóng góp vào danh sách ngày càng tăng các tính năng của Yii và tích cực tham gia trong việc mở rộng. Điều gì đáng chú ý về Yii ? là dễ sử dụng, hiệu suất cao, và chiều sâu mở rộng không tốn kém. Yii được đóng gói với các tính năng giúp bạn đáp ứng những nhu cầu cao trên ứng dụng web hiện nay. AJAX cho phép web tích hợp các widgets, thực thi của một kiến trúc MVC, DAO và quan hệ lớp ActiveRecord, kiểm soát truy cập, xem video chuyên nghiệp, quốc tế (I18N),và nội địa hoá (l10n), đây là các tính năng vượt trội của Yii. Với phiên bản 1.1, Framework chính bây giờ là được đóng gói với một thư viện mở rộng chính thức được gọi là Zii. Những mở rộng được phát triển và duy trì bởi các thành viên chủ chốt tiếp tục mở rộng tính năng của Yii.

4. Yii so sánh thế nào với các framework khác

Giống như hầu hết các PHP framework, Yii là một MVC framework. (Tham khảo thêm ở đây: http://yiivn.com/showthread.php?tid=4)

Yii tốt hơn các framework khác bởi tính hiệu quả, nhiều tính năng và có tài liệu hướng dẫn đầy đủ . Yii được thiết kế cẩn thận từ ban đầu để đáp ứng nhu cầu phát triển ứng dụng Web nghiêm ngặt. Yii không phải là sự trộn lẫn lúi xùi của các dự án đã qua hay tập hợp các 3rd party library. Nó là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm của các tác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của các framework khác.

Kế thừa Yii kết hợp những ý tưởng và những kiến thức của các framework và ứng dụng lập trình web đi trước nó.

Tham khảo mô hình ActiveRecord của RORjQuery: jQuery được tích hợp sẵn trong Yii và được sử dụng như 1 Javascripts frameworkSymfony: Yii tham khảo cách thiết kế các bộ lọc (filter design) của Sym và kiến trúc plug-in của nóJoomla: Yii tham khảo thiết kế module (modular design) và message translation scheme. Qua đó bạn có thể thấy Yii không phải là cái gì đó mới mẻ hay cao siêu cả, mà đơn giản chỉ là học hỏi và kế thừa những cái đã có và thống nhất thành 1 framework dễ dùng nhất cho người sử dụng.

5. Kế thừa

Yii kết hợp những ý tưởng và những kiến thức của các framework và ứng dụng lập trình web đi trước nó. Dưới đây là 1 số ứng dụng mà Yii đã học tập:

Prado: Tất nhiên rồi, vì tiền thân của Yii chính là Prado mà. Đây cũng chính là nguồn ý tưởng chính cho Yii. Yii làm theo những ý tưởng về component-base, “event-driven programming paradigm”, các lớp database abstraction, kiến trúc ứng dụng theo các module, “internationalization and localization”,… Ruby on Rails: Yii kế thừa các quy ước của ROR thông qua cấu hình. Tham khảo mô hình ActiveRecord của ROR jQuery: jQuery được tích hợp sẵn trong Yii và được sử dụng như 1 Javascripts framework Symfony: Yii tham khảo cách thiết kế các bộ lọc (filter design) của Sym và kiến trúc plug-in của nó Joomla: Yii tham khảo thiết kế module (modular design) và message translation scheme.

Qua đó bạn có thể thấy Yii không phải là cái gì đó mới mẻ hay cao siêu cả, mà đơn giản chỉ là học hỏi và kế thừa những cái đã có và thống nhất thành 1 framework dễ dùng nhất cho người sử dụng.

6. Ưu điểm

Yii tốt hơn các Framework khác bởi tính hiệu quả, nhiều tính năng. Yii được thiết kế cẩn thận từ ban đầu để đáp ứng nhu cầu phát triển ứng dụng Web nghiêm ngặt. Yii là kết quả của sự kết hợp những gì tốt nhất của các Framework đi trước. Nó là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm của các tác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của các Framework khác.

Trước đó, Qiang đã từng phát triển PRADO nhiều năm. Những năm kinh nghiệm và đánh giá của người sử dụng, cần một Framework PHP dễ dàng hơn, mở rộng hơn và hiệu quả hơn để đáp ứng nhu cầu ngày càng tăng của các nhà phát triển ứng dụng web. Số liệu cực kỳ ấn tượng khi so sánh với các Framework PHP khác dựa trên hiệu suất của nó ngay lập tức đã thu hút sự chú ý rất tích cực.

Khả năng tái sử dụng và mở rộng của Yii rất cao. Yii là 1 Framework hoàn toàn hướng đối tượng. Mọi thứ trong Yii đều có thể tái sử dụng và mở rộng rất dễ dàng.

Yii hỗ trợ trên tất cả các DBMS bởi PDO (PHP Data Object).

Hiệu suất xử lý của ZendFramework khá là chậm, vì kiến trúc của nó quá đồ sộ và phức tạp.

Hiện tại có rất nhiều người ưa thích sử dụng Wordpress hay Joomla nhưng chỉ phù hợp xây dựng các website nhỏ, cần làm nhanh, vì có sẳn nhiều thứ, cộng đồng và tài liệu nhiều... Khi nâng cấp và bảo trì rất khó khăn, tốn nhiều thời gian.

Hiệu suất xử lý của Framework Yii hiệu quả cao. Biểu đồ dưới đây cho thấy hiệu quả hơn hẳn so với các Framework PHP khác. RPS là viết tắt của “Request per second” nhằm mô tả việc làm mới ứng dụng có thể xử lý trong mỗi giây. Số càng cao thì tính hiệu quả càng lớn của Framework. Sự thuận lợi này của Yii rất cần thiết cho người sử dụng khi tương tác với ứng dụng.

7. Khuyết điểm .

Yii Framework vẫn đang trong quá trình hoàn thiện và phát triển.

8. Các thành phần cấu trúc yii framework .

Model

Thông thường trong kiến trúc MVC, Model là phần rất quan trọng trong cả dự án, nó có quan hệ mật thiết với cơ sở dữ liệu.

Yii có 2 loại model: form model là lớp ( CFormModel ) và active record model là lớp ( CActiveRecord ). Cả hai được mở rộng từ lớp ( CModel ). CFormModel đại diện cho mô hình dữ liệu do người dùng nhập vào ở dạng HTML. Sau đó lưu dữ liệu này vào bộ nhớ và thông qua CActiveRecord dữ liệu được lưu vào CSDL.

ActiveRecord (AR) là một mô hình được sử dụng để truy cập cơ sở dữ liệu theo hướng đối tượng. Mỗi đối tượng AR trong Yii là một thể hiện của CActiveRecord là kết quả của 1 dòng dữ liệu của bảng được tạo trong CSDL.

View

Thông thường, View là giao diện của người dùng, dựa trên các dữ liệu trong Model.

View chính là PHP bao gồm chủ yếu là các yếu tố của giao diện. Nó có thể chứa câu lệnh PHP nhưng nó được khuyến cáo không nên thay đổi mô hình dữ liệu nên vẫn còn tương đối đơn giản. Các câu lệnh PHP trong View thường có các điều kiện và vòng lặp rất đơn giản, và được hỗ trợ bởi các phương thức HTML và Widget là lớp có thể tái sử dụng nhiều lần.

Controller

Controller là một thể hiện của CController. Nó được tạo ra bởi các ứng dụng khi người dùng yêu cầu. Controller là thiết bị điều khiển chính cho các yêu cầu từ người sử dụng, và nó sẽ tương tác với cơ sở dữ liệu. Một lớp trong Controller có tên bắt đầu là “action”. Khi tạo mới một ứng dụng Yii thì mặc định trong Controller là có lớp actionIndex, actionContact.

Layout

Layout là bố cục chung nhất cho một Website. Nó thường chứa các thành phần chung nhất. Trong Layout có thể chứa các câu lệnh PHP.

Widget

Widget là một thể hiện của CWidget. Nó là một thành phần chủ yếu cho giao diện của trang Web. Widget thường được nhúng vào nhằm tạo ra một số giao diện người dùng phong phú hơn. Widget có thể tái sử dụng nhiều lần trong website. Ví dụ, một Widget lịch có thể làm cho người dùng một giao diện lịch đẹp hơn.

Component

Ứng dụng Yii được xây dựng dựa trên các Component là các đối tượng văn bản để đặc tả một cách rõ ràng. Component là một thể hiện của CComponent hoặc lớp dẫn xuất của nó. Sử dụng một Component chủ yếu liên quan đến việc truy cập vào thuộc tính và nâng cao / xử lý các sự kiện.

Module

Module là một phần độc lập gồm các model, view, controller và các thành phần hỗ trợ khác. Trong nhiều khía cạnh, module giống như một ứng dụng. Sự khác nhau chính là module không thể triển khai một mình mà nó phải nằm bên trong của một ứng dụng. Người dùng có thể truy cập đến các controller trong một module như một ứng dụng bình thường.

Đối với một ứng dụng quy mô lớn, chúng ta có thể chia thành nhiều module được phát triển và bảo trì một cách riêng biệt. Một số tính năng thường được sử dụng, chẳng hạn như quản lý người sử dụng, quản lý các nhận xét có thể được phát triển thành các module để họ có thể tái sử dụng dễ dàng trong các dự án trong tương lai.

Nguồn tham khảo :

http://forum.phongdaotao.com/

http://www.cuasotinhoc.vn/


All Rights Reserved