Code Igniter

I. Thông tin chung:

CodeIgniter là một nền tảng ứng dụng web (web application framework) mã nguồn mở được dùng để xây dựng các ứng dụng web động tương tác với PHP. Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn – so với việc viết mã hỗn tạp – bằng cách cung cấp 1 bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới những bộ thư viện đó. Phiên bản chính thức đầu tiên của CodeIgniter được công bố vào 28 tháng 2 năm 2006. Phiên bản mới nhất cho tới bây giờ là 2.1.3 được công bố chính thức vào 8 tháng 10 năm 2012.


II. Nội dung chính:

– CodeIgniter khuyến khích các lập trình viên sử dụng mô hình model-view-controller (MVC) architectural pattern cho các ứng dụng web của mình.

– CodeIgniter cũng mang một số các khái niệm đặc thù và các tính năng cơ bản của các mô hình MVC khác như Ruby on Rails:

+ Hỗ trợ kết nối và tương tác đa nền tảng cơ sở dữ liệu

+ Tương tác với cơ sở dữ liệu thông qua active records

+ Session Management (quản lí Session)

+ Định dạng và chuẩn hóa form và dữ liệu đầu vào

+ Hỗ trợ Caching toàn trang để tăng tốc độ thực thi và giảm tải tối thiểu cho máy chủ.

+ Scaffolding

+ Hỗ trợ Template Engine hoặc sử dụng chính PHP tags để điều hướng trong Views

+ Hỗ trợ Hooks, các lớp ngoại (Class Extensions), và các Plugins

– So với các mô hình framework MVC khác, CodeIgniter có các ưu điểm sau :

+ Tương thích hoàn toàn với PHP 4. Nếu sử dụng PHP 5 sẽ dùng được các tính năng hữu ích khác như khả năng gọi phương thức dây chuyền (method chaining ability).

+ Mô hình code nhẹ cho hệ thống, cải thiện tốc độ thực thi (Đây là ưu điểm lớn nhất của CI, tốc độ tuyệt vời)

+ Đơn giản trong việc cài đặt, cấu hình và cấu trúc thư mục.

+ Error Logging

+ Mềm dẻo trong việc định tuyến URI (URI Routing)

– Framework này được mặc định tích hợp thêm vào một số lớp thư viện khác mà các framework khác chưa tích hợp mặc định:

+ Bảo mật và XSS(Cross-site scripting) Filtering

+ Gửi Email, hỗ trợ đính kèm, HTML/Text email, đa giao thức(sendmail, SMTP, and Mail) và các thứ khác.

+ Thư viện chỉnh sửa ảnh (cắt ảnh, thay đổi kích thước, xoay ảnh, v.v..). Hỗ trợ GD, ImageMagick, và NetPBM

+ Upload file

+ FTP Class – Tương tác với máy chủ thông qua giao thức FTP

+ Localization

+ Phân trang tự động

+ Mã hóa dữ liệu – Data Encryption

+ Đo lường tốc độ thực thi – Benchmarking

+ Application Profiling

+ Lịch – Calendaring Class

+ User Agent Class

+ Nén – Zip Encoding Class

+ Trackback Class

+ XML-RPC Library

+ Unit Testing Class

+ Search-engine Friendly URLs

+ Một lượng lớn các hàm hỗ trợ (helpers)

 

Chỉ với CI, bạn học khá nhiều thứ.

1. Mô hình MVC (OK, bạn có biết vô số ĐH ở VN này sử dụng .NET để yêu cầu SV làm bài tập, rất coi thường PHP nhưng vào năm 2008, MVC cho ASP.NET mới hoàn thiện và 2009 mới Microsft chấp nhận nó chính thức. MVC có trong PHP và JAVA từ thuở xưa như trái đất vậy)

2. Các library của CI. chỉ ở cách sử dụng, bạn sẽ thấy nó đơn giản hơn tất cả các framework khác nhưng hiệu quả không hề kém. Và với level starter thì cách dùng library của CI là phù hợp và dễ hiểu, từ đó bạn sẽ có mong muốn viết các library bổ sung hoặc nâng cấp – good for you.

3. Một chút về bảo mật, form, session, url. Riêng cơ chế session của CI cũng đủ để Joomla chào thua (không phải joomla authors làm không được mà vì không dùng vì Joomla không tính tới mức độ mở rộng của ứng dụng tới mức như vậy) và cơ chế lấy dữ liệu được submit bằng POST và GET của CI cũng đã là bảo mật hơn cho người coder.

(FYI – các framework khác chọn cách để ngỏ khả năng xử lý dữ liệu nhập của người dùng thay vì kiểm soát chặt chẽ, nó là tốt với những người coder có kn nhưng khá nguy hiểm nếu cứ chỉ dùng khơi khơi như vậy).


III. Kết luận:
Đây là 1 framework tốt và dễ dùng nhất từ trước tới giờ. Nó khá đơn giản nhưng không hề yếu, mà lại chạy rất nhanh. Bất cứ 1 framework nào được viết lên khi nghĩ tới speed đều muốn so với CI. Tuy nhiên, CI hơi khó kiếm cơm và nhất là với những nhu cầu “mỳ gói” ở VN này thì không thể cạnh tranh về tính năng (không phải do mình viết nhưng vẫn tính tiền khách hàng được) của Joomla ! CI rất rốt nhưng để viết các ứng dụng lớn hay duy trì lâu dài, phải nâng cấp thường và có nhiều thay đổi là khá khó.

Tagged: , , , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: