2. 8 Đa ngôn ngữ (I18N) và địa phương hóa (L10N)
2.18. Hệ thống thư viện mở rộng
Yii cung cấp 1 hệ thống thư viện mở rộng bao gồm những thành phần do người dùng đóng góp. Điều này giúp cho danh sách các tính năng không bao giờ dừng lại.
Có thể thử dùng Yii bởi tốc độ, bảo mật,các tính năng đa dạng phong phú và kỹ thuật tuyệt vời của nó. Nhưng sẽ sử dụng Yii lâu dài vì nó vô cùng trực quan, linh hoạt và dễ sử dụng.
Trang 25
Dưới đây là danh sách các thành phần lõi được khai báo bởi CWebApplication.
• assetManager: CAssetManager - quản lý việc xuất bản các tập tin công cộng và cá nhân.
• authManager: CauthManager - quản lý kiểm soát truy cập dựa trên vai trò (RBAC).
• cache: Ccache - cung cấp dữ liệu của bộ nhớ cache. Lưu ý, phải chỉ định 1 lớp cụ thể (ví dụ CMemCache, CDbCache). Nếu không, giá trị null sẽ được trả về khi ta truy cập vào thành phần này.
• clientscript: CClientScript - quản lý các câu lệnh của client (javascripts và CSS).
• coreMessages: CPhpMessageSource - cung cấp các thông điệp được truyền tải bởi ứng dụng Yii
• db: CDbConnection - cung cấp các kết nối cơ sở dữ liệu. Lưu ý, phải thiết lập giá trị cho connectionString để sử dụng thành phần này.
• errorHandler: CErrorHandler - xử lý lỗi uncaught PHP và ngoại lệ. • messages: CPhpMessageSource - cung cấp thông điệp được sử dụng bởi các ứng dụng Yii
• request: CHttpRequest - cung cấp thông tin liên quan đến các yêu cầu của người sử dụng.
• securityManager: CSecurityManager - cung cấp các dịch vụ liên quan đến an ninh, chẳng hạn như băm, mã hóa.
• session: CHttpSession - cung cấp các chức năng liên quan đến phiên làm việc.
Trang 26
• statePersister: CStatePersister - cung cấp các phương thức statePersister tổng thể, bền vững.
• urlManager: CUrlManager - cung cấp các phân tích URL và chức năng tạo ra.
• user: CWebUser - thể hiện các thông tin cá nhân của người sử dụng hiện tại.
• themeManager: CthemeManager - quản lý các giao diện.
Trang 27
CHƯƠNG 3. SO SÁNH YII VÀ CÁC FRAME KHÁC
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 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.
Không chỉ là MVC framework mà Yii còn là một framework hướng component nên mức độ tái sử dụng giữa các project phát triển là rất cao. Ngoài ra Yii còn có hiệu năng và tốc độ cao hơn Zend và Symfony.
Kế thừa những gì tinh túy nhất Prado, Ruby On, kiến trúc plugin của Symfony, thiết kế Module của Joomla cũng như JQuery được tích hợp sẵn.
Dưới đây là 1 số ứng dụng mà Yii đã học tập:
Prado: 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.
Trang 28
Khác với các Framework khác, trong Yii kiến trúc MVC là để tách biệt các phần trong chương trình, làm cho chương trình trở nên rõ ràng, dễ gỡ rối.
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ó.
Trang 29
Dưới đây là 1 số so sánh giữa Yii và 1 số framework khác mà nhóm em đã tìm hiểu được
Top 10 Hot PHP Frameworks
1 Yii (131 votes) discuss Yii
2 CodeIgniter (104 votes) discuss CodeIgniter 3 CakePHP (76 votes) discuss CakePHP 4 Zend (71 votes) discuss Zend
5 Symfony (52 votes) discuss Symfony 6 PHPDevShell (41 votes)
7 Prado (28 votes) discuss Prado 8 Akelos (26 votes) discuss Akelos 9 QPHP (6 votes)
10 ZooP (5 votes)
Top 10 Ranking PHP Frameworks
1 Yii (avg: 4.77) Ranking: discuss Yii 2 PhpOpenbiz (avg: 4.5) Ranking:
3 CodeIgniter (avg: 4.4) Ranking: discuss CodeIgniter 4 CakePHP (avg: 4.36) Ranking: discuss CakePHP 5 PHPDevShell (avg: 4.34) Ranking:
6 Symfony (avg: 4.33) Ranking: discuss Symfony 7 Prado (avg: 4.14) Ranking: discuss Prado
Trang 30
8 Zend (avg: 3.97) Ranking: discuss Zend 9 Akelos (avg: 3.96) Ranking: discuss Akelos 10 eZ Components (avg: 3.67) Ranking
CHƯƠNG 4. TỔNG KẾT
Yii là một MVC Framework và có cấu trúc tuần tự cho mỗi phần của Model, View, và Controller điều này giúp tăng khả năng tái sử dụng code dễ dàng bảo trì cũng như nâng cấp sau này mà không ảnh hưởng nhiều đến hệ thống hiện tại.
Không chỉ là MVC framework mà Yii còn là một framework hướng component nên mức độ tái sử dụng giữa các project phát triển là rất cao. Ngoài ra Yii còn có hiệu năng và tốc độ cao hơn Zend và Symfony.
Kế thừa những gì tinh túy nhất Prado, Ruby On Rails, kiến trúc plugin của Symfony, thiết kế Module của Joomla cũng như JQuery được tích hợp sẵn. Yii Framework xứng đáng là một vũ khí mới của dân Lập trình.
Do thời gian thực hiện đề tài có hạn, nên nhóm chúng em mới chỉ tìm hiểu được một cách tổng quan về Yii, xây dựng được 1 số ứng dụng nhỏ trong thực tế. Rất mong nhận được sự đóng góp ý kiến của Thầy và các bạn học viên trong lớp.
Một lần nữa chúng em xin được gửi lời cảm ơn sâu sắc đến TS Cao Tuấn Dũng đã hướng dẫn và tạo điều kiện tốt để chúng em hoàn thành tiểu luận này.
Trang 31