CodeIgniter là gì? những điều bạn nên biết về CodeIgniter
CodeIgniter là gì?
CodeIgniter được phát triển ban đầu bởi Rick Ellis, Giám đốc điều hành của EllisLab, Inc. vào năm 2006. Hiện tại, framework này được duy trì bởi Quỹ CodeIgniter (trước đây là Viện Công nghệ British Columbia) kể từ năm 2019. Đến nay, CodeIgniter thường được công nhận vì tốc độ của nó so với các framework PHP khác. Có một câu nói nổi tiếng từ người sáng lập PHP, Rasmus Lerdorf vào năm 2008 về CodeIgniter: “Vì nó nhanh hơn, nhẹ hơn và ít giống như một framework nhất.”
CodeIgniter, một framework MVC (Model–View–Controller), là một giấc mơ của các nhà phát triển web. Với các công cụ đã được xây dựng sẵn, cách tiếp cận có cấu trúc và tính mã nguồn mở, nó giúp bạn tạo ra các trang web một cách dễ dàng. Nó giống như việc có một framework PHP mạnh mẽ ngay trong tầm tay của bạn, với các thư viện đã viết sẵn cho các tác vụ phổ biến như cơ sở dữ liệu, biểu mẫu, phiên làm việc và nhiều hơn nữa. Tạm biệt mã lặp lại và chào mừng phát triển nhanh chóng.
CodeIgniter hỗ trợ nền tảng PHP nào?
CodeIgniter là phần mềm mã nguồn mở được cấp phép theo giấy phép MIT và tương thích với các nền tảng PHP 5.6.0+ (v3.1.11) và PHP 8.1 trở lên (v4.XX). Mã nguồn của nó được duy trì trên GitHub. CodeIgniter thường được công nhận vì tốc độ của nó so với các framework PHP khác. Có một câu nói nổi tiếng từ người sáng lập PHP, Rasmus Lerdorf vào năm 2008 về CodeIgniter: “Vì nó nhanh hơn, nhẹ hơn và ít giống như một framework nhất.”
Các tính năng của CodeIgniter là gì?
Bây giờ bạn đã hiểu rõ về CodeIgniter trong PHP, hãy cùng thảo luận về các tính năng chính của CodeIgniter giúp xây dựng các trang web Ứng dụng.
Các tính năng của CodeIgniter
- MVC giúp cuộc sống dễ dàng: Hãy tưởng tượng việc tách biệt các views khỏi dữ liệu (logic phía sau) và xử lý các yêu cầu với các controllers. Đó là phép thuật của MVC, và CodeIgniter làm rất tốt điều đó!
- Nhẹ nhàng: CodeIgniter không làm nặng nề các dự án của bạn như một số framework khác. Nó được biết đến là một máy móc gọn nhẹ, giữ kích thước ứng dụng của bạn trong tầm kiểm soát.
- Phát triển nhanh chóng: Đừng xây dựng mọi thứ từ đầu! CodeIgniter có sẵn các thư viện cho cơ sở dữ liệu, biểu mẫu, phiên làm việc và nhiều hơn nữa. Tập trung vào các tính năng độc đáo của ứng dụng của bạn.
- Hiệu quả: CodeIgniter không chỉ về tốc độ và hiệu quả, mà còn về bảo mật. Với các tính năng tích hợp, nó giúp giữ các cuộc tấn công XSS và SQL injection ở mức độ thấp. Yên tâm rằng ứng dụng của bạn được bảo vệ, mang lại cho bạn và người dùng cảm giác an toàn và tin cậy.
- Định tuyến URLs: Tạo ra các URL sạch và thân thiện với công cụ tìm kiếm cho các trang web của bạn. CodeIgniter cho phép bạn kiểm soát cách các URL kết nối với các controllers và functions.
- Cộng đồng lớn: CodeIgniter không chỉ là một framework, nó còn là một cộng đồng. Là mã nguồn mở, nó đã thu hút một cộng đồng lớn các nhà phát triển CodeIgniter. Cộng đồng này không chỉ là một nhóm cá nhân, mà còn là một hệ thống hỗ trợ. Với hàng tá tài nguyên, hướng dẫn và thư viện bổ sung, nó giúp tăng cường dự án của bạn và làm cho bạn cảm thấy là một phần của điều gì đó lớn hơn.
- Tùy chỉnh: Framework cốt lõi rất tuyệt, nhưng bạn không bị ràng buộc với nó. Xây dựng các thư viện và trợ giúp tùy chỉnh để làm cho CodeIgniter phù hợp với dự án của bạn.
- Kiểm thử: Kiểm thử là một phần thiết yếu của phát triển phần mềm, và CodeIgniter làm cho nó trở nên dễ dàng. Cấu trúc của CodeIgniter cho phép kiểm thử đơn vị dễ dàng, giúp bạn đảm bảo chất lượng và độ tin cậy của mã. Bằng cách viết các bài kiểm thử đơn vị, bạn có thể phát hiện lỗi và lỗi sớm, làm cho mã của bạn dễ bảo trì hơn trong dài hạn.
Hướng dẫn CodeIgniter: Nó hoạt động như thế nào?
Chúng tôi hy vọng bạn đã hiểu rằng CodeIgniter là một framework MVC. Trong framework này, nếu một người dùng yêu cầu một tài nguyên, controller sẽ phản hồi trước tiên. Controller hiểu yêu cầu của người dùng rồi lấy dữ liệu.
Ví dụ, nếu bạn muốn truy xuất một khách hàng với id=3, bạn nên gửi yêu cầu của bạn đến controller, sau đó nó sẽ gửi yêu cầu đó đến các model của CodeIgniter. Controllers nhận các bản ghi từ các model của CodeIgniter. Phiên bản dễ đọc của kết quả sau đó được định dạng bởi view dựa trên đầu vào của controller. Trong trình duyệt, kết quả được hiển thị cho người dùng.
Các phiên bản nổi bật của CodeIgniter
Lịch sử phát hành của CodeIgniter rất rộng lớn. Vì vậy, CodeIgniter có hai phiên bản chính là CodeIgniter 3 và CodeIgniter 4. Dưới đây là sự phân tích chi tiết về cả hai phiên bản của CodeIgniter.
CodeIgniter 3 là gì?
Các nhà phát triển hãy cùng thảo luận về phiên bản gốc của framework PHP phổ biến này: “CodeIgniter 3.” CodeIgniter 3 được phát hành vào ngày 19 tháng 9 năm 2019 dưới giấy phép MIT. Mục tiêu chính của việc phát hành này là sử dụng nó với PHP 5.6 hoặc các phiên bản mới hơn. Trong nhiều năm qua, framework PHP này vẫn hoạt động tích cực nhờ các tính năng như bảo mật, gọn nhẹ và hỗ trợ cộng đồng.
CodeIgniter 4 là gì?
Hãy tưởng tượng CodeIgniter 3 như là lớp nền của pizza và CodeIgniter 4 là lớp phủ của nó. Nói một cách đơn giản, đây là phiên bản nâng cấp của CodeIgniter 3. Nó được cấu hình với các framework PHP mới nhất và các thư viện đã được xây dựng sẵn để phát triển nhanh hơn. CodeIgniter 4 là một framework hiện đại và tinh tế được sử dụng để xây dựng các ứng dụng web mạnh mẽ.
Bạn có thể nghĩ rằng CodeIgniter 3 và CodeIgniter 4 có cùng chức năng có nghĩa là các tính năng cốt lõi của chúng cũng giống nhau. Vậy tại sao lại có sự so sánh giữa CodeIgniter 3 và CodeIgniter 4? Đọc tiếp nhé!
Bảng so sánh CodeIgniter 3 và CodeIgniter 4
Tính năng | CodeIgniter 3 | CodeIgniter 4 |
---|---|---|
Hỗ trợ phiên bản PHP | 5.6 hoặc cao hơn | 7.2 hoặc cao hơn |
Kiến trúc | Dựa trên file (sử dụng thư viện) | MVC (Model-View-Controller) |
Cấu trúc thư mục | Phẳng | Modular hơn với các thư mục ứng dụng riêng biệt |
Namespaces | Không hỗ trợ | Sử dụng namespaces để tổ chức mã tốt hơn |
Tự động tải | Thủ công | Tự động tải PSR-4 cho việc tải lớp tự động |
Hỗ trợ cơ sở dữ liệu | Hỗ trợ nhiều driver cơ sở dữ liệu | Hỗ trợ nhiều driver cơ sở dữ liệu với các tính năng nâng cao |
Cộng đồng và Tài nguyên | Cộng đồng lớn và hoạt động | Cộng đồng đang phát triển, nhưng nhỏ hơn CI3 |
Cài đặt | Các file cấu hình (config.php) | Các biến môi trường (.env) cho bảo mật tốt hơn |
Tốc độ phát triển | Có thể nhanh hơn nhờ sự quen thuộc (cho người dùng CI3) | Cách tiếp cận tinh gọn có thể dẫn đến phát triển nhanh hơn |
Laravel so với CodeIgniter: Cái nào tốt hơn?
Chúng tôi đã đề cập rằng Laravel là framework PHP tốt nhất trong các hướng dẫn trước đây của chúng tôi. Nhưng liệu nó có thắng trong cuộc chiến với CodeIgniter không? Hãy cùng xem xét!
Các Controller
Laravel
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function index() { $users = User::all(); return view('users.index', compact('users')); } }
CodeIgniter
<?php class Users extends CI_Controller { public function index() { $this->load->model('User_model'); $users = $this->User_model->get_all_users(); $this->load->view('users/index', ['users' => $users]); } }
Các sự khác biệt chính
- Các controller của Laravel mở rộng lớp Controller từ namespace Illuminate.
- Các controller của CodeIgniter mở rộng lớp CI_Controller từ framework CodeIgniter.
- Laravel sử dụng dependency injection để truy cập các model.
- CodeIgniter sử dụng phương pháp load để truy cập các model.
- Laravel trả về một view với dữ liệu sử dụng compact hoặc một mảng.
- CodeIgniter truyền dữ liệu cho view dưới dạng mảng liên kết.
Định tuyến
Laravel
Route::get('/users', [UserController::class, 'index']);
CodeIgniter
$route['users'] = 'Users/index';
Các sự khác biệt chính
- Laravel sử dụng cú pháp định tuyến trôi chảy với closures hoặc phương thức controller.
- CodeIgniter định nghĩa các route trong một file cấu hình với cú pháp đơn giản hơn.
Views (Templating)
Laravel: Sử dụng engine templating Blade với cú pháp riêng để nhúng mã PHP và dữ liệu vào HTML.
<h1>Users</h1> <ul> @foreach ($users as $user) <li>{{ $user->name }}</li> @endforeach </ul>
CodeIgniter: Dựa vào PHP chuẩn với các chức năng trợ giúp tùy chọn cho các tác vụ templating cơ bản. Bạn cũng có thể tích hợp các engine templating của bên thứ ba.
Laravel vs CodeIgniter: Các sự khác biệt bổ sung
Hiệu suất
CodeIgniter là framework nhẹ. Không nghi ngờ gì, nó vượt trội hơn Laravel về tốc độ. Nếu bạn cần thời gian tải nhanh cho website hoặc ứng dụng, hãy chọn CodeIgniter và dịch vụ lưu trữ đám mây của chúng tôi để nâng cao tốc độ website và ứng dụng của bạn lên một cấp độ mới.
Tốc độ
CodeIgniter có tính nhẹ tựa. Điều này giúp nó chiến thắng trong cuộc đua tốc độ so với Laravel. Nếu tốc độ tải nhanh là ưu tiên của bạn, CodeIgniter là lựa chọn tốt hơn.
Lựa chọn của các nhà phát triển
Nếu bạn khao khát tốc độ và linh hoạt, CodeIgniter có thể là lựa chọn phù hợp với bạn. Nó là một máy móc tối ưu, nghĩa là thời gian tải nhanh hơn và yêu cầu bộ nhớ thấp hơn. Ngoài ra, nó cho bạn nhiều quyền kiểm soát hơn về cách cấu trúc mọi thứ. Tuy nhiên, bạn có thể cần mang theo bộ công cụ của riêng mình cho các tính năng mà Laravel đã tích hợp sẵn. Các nhà phát triển có thể gặp phải các vấn đề phổ biến như lỗi PHP trong CodeIgniter. Để khắc phục, hãy đọc hướng dẫn "Cách sửa lỗi CodeIgniter: 'Một lỗi PHP đã được gặp phải'". Đừng bỏ lỡ!
Đối với những ai yêu thích các framework đầy đủ tính năng, Laravel có rất nhiều tiện ích tích hợp sẵn, giảm thiểu việc tìm kiếm thư viện của bên thứ ba. Thêm vào đó, Laravel có các cơ chế caching giúp mọi thứ hoạt động trơn tru. Tuy nhiên, nó là một framework lớn hơn, nên việc sử dụng bộ nhớ có thể cao hơn. Và, Laravel áp dụng một số mẫu mã lập trình, điều này có thể khiến một số nhà phát triển cảm thấy ít linh hoạt hơn.
Xem xét bảo mật khi sử dụng CodeIgniter
Ngăn ngừa XSS
Cross-Site Scripting (XSS) là lỗ hổng bảo mật phổ biến nhất khi các tin tặc tiêm mã độc vào các trang web mà người dùng khác xem. CodeIgniter có tính năng lọc XSS tích hợp sẵn. Với xss_clean(), bất kỳ dữ liệu nào chạy qua sẽ được lọc.
Ngăn ngừa SQL Injection
Không có cách duy nhất để ngăn ngừa SQL Injection. Một số phương pháp dưới đây cần được thực hiện để có kết quả tốt hơn.
- Ràng buộc truy vấn: Thay vì truyền trực tiếp dữ liệu đầu vào của người dùng vào truy vấn, hãy sử dụng các placeholder như ‘?’ hoặc các placeholder tên như ‘
$sql = "SELECT * FROM users WHERE username = :username AND password = :password"; $this->db->query($sql, array('username' => $username, 'password' => $password));
- Thoát dữ liệu đầu vào: Sử dụng phương pháp escape() từ lớp tiện ích cơ sở dữ liệu để thoát dữ liệu đầu vào trong các truy vấn SQL thô.
$username = $this->db->escape($username); $password = $this->db->escape($password); $sql = "SELECT * FROM users WHERE username = $username AND password = $password"; $this->db->query($sql);
- Active Record và Query Builder: Bạn có thể xây dựng các truy vấn cơ sở dữ liệu bằng cách sử dụng các tính năng Active Record và Query Builder. SQL injection được giảm thiểu với các lớp này vì dữ liệu đầu vào của người dùng được thoát tự động.
Ẩn lỗi
Một cân nhắc bảo mật tiếp theo cho CodeIgniter là ẩn lỗi. Là một nhà phát triển, bạn có thể bắt và sửa lỗi. Nhưng hiển thị lỗi công khai là một lời mời mở cho các mối đe dọa mạng. Vì vậy, tốt hơn hết là ẩn lỗi và CodeIgniter có ba tính năng xử lý lỗi ở mọi cấp độ báo cáo.
-
Mức độ báo cáo lỗi PHP: Khi gọi hàm error_reporting() với tham số là 0, tất cả lỗi từ index.php sẽ bị ẩn.
-
Mức độ lỗi cơ sở dữ liệu: Tắt hiển thị lỗi cơ sở dữ liệu trong application/config/database.php sẽ ngăn không cho bất kỳ lỗi nào xuất hiện ở cấp cơ sở dữ liệu. Đặt tùy chọn db_debug thành FALSE trong mảng $db.
$db['default']['db_debug'] = FALSE;
- Nhật ký lỗi: Các nhà phát triển có thể xác định và giảm thiểu các nỗ lực SQL injection bằng cách thực hiện một cơ chế ghi nhật ký. Kích hoạt giá trị log_threshold trong mảng $config thành 1 trong file application/config/config.php.
$config['log_threshold'] = 1;
Cách cài đặt CodeIgniter?
Đây là quy trình tải xuống tiêu chuẩn, hoàn hảo nếu bạn thích cách tiếp cận đơn giản hơn.
- Tải gói CodeIgniter: Truy cập trang web chính thức của CodeIgniter và tải phiên bản mới nhất.
- Giải nén gói: Giải nén file đã tải về. Bạn sẽ có một thư mục chứa các file CodeIgniter.
- Tải lên máy chủ của bạn: Sử dụng một khách hàng FTP hoặc trình quản lý file của nhà cung cấp dịch vụ lưu trữ web của bạn, tải toàn bộ thư mục đã giải nén lên thư mục gốc của máy chủ (thường là public_html hoặc htdocs).
- Cấu hình cài đặt của bạn:
- Mở file application/config/config.php bằng một trình soạn thảo văn bản.
- Đặt biến base_URL thành URL của website của bạn.
- Nếu bạn định sử dụng cơ sở dữ liệu, chỉnh sửa file database.php trong cùng thư mục và cấu hình chi tiết kết nối cơ sở dữ liệu của bạn.
Bắt đầu xây dựng một trang web trên CodeIgniter
Bạn đã hoàn tất cài đặt CodeIgniter? Hãy bắt đầu hành trình trực tuyến của bạn với việc tạo một trang web cơ bản trên framework PHP này.
Trong thư mục controllers, bạn có thể tạo một file tên là Form.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Form extends CI_Controller { public function index() { $this->load->view('header'); $this->load->view('nav'); $this->load->view('content'); $this->load->view('footer'); } } ?>
Bây giờ, bạn đã tạo các file khác nhau cho header, nav, content và footer, và tải chúng trong file controller.
- File header.php trong application/views:
<!DOCTYPE html> <html> <head> <title>Basic Site</title> <style type="text/css"> body, html{margin:0; padding:0;} body{ background-color:#eee; } h1, h2, h3, h4, p, a, li, ul{ font-family: Arial, sans-serif; color: black; text-decoration: none; } #nav{ margin: 50px auto 0 auto; width: 10000px; background-color: #888; height: 15px; padding: 20px; } #nav a:hover{ color: red; } #nav ul{ list-style: none; float: left; margin: 0 50px; } #nav ul li{ display: inline; } #content{ width: 1000px; min-height: 100%; margin: 0 auto; padding: 20px; } #footer{ width: 400px; height: 15px; margin: 0 auto; padding: 20px; } #footer p{ color: #777; } </style> </head>
- File nav.php trong application/views:
<body> <div id="container"> <div id="nav"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About Us</a></li> <li><a href="#">Contact Us</a></li> <li><a href="#">Social Media</a></li> </ul> </div>
- File content.php trong application/views:
<div id="content"> <h1>Welcome to my site</h1> <p>This website is built on CodeIgniter. </p> </div>
- File footer.php trong application/views:
<div id="footer">
<p>Copyright (c) 2024 MilesWeb Internet Services Pvt. Ltd All Rights Reserved</p>
</div>
</div>
</body>
</html>
Kết quả cuối cùng: Trang web sẽ được hiển thị tại URL localhost/site_example/index.php/Form
.
Hatonet kết nối doanh nghiệp ITO toàn cầu.
Giúp các doanh nghiệp IT Việt Nam tiết kiệm chi phí,tìm kiếm
đối tác,mở rộng mạng lưới.
- Mở rộng kênh tìm kiếm khách hàng gia tăng doanh thu.
- Tiết kiệm chi phí quan hệ tìm đối tác.
- Ứng tuyển trực tuyến bất cứ lúc nào khi có yêu cầu.
- Trực tiếp liên kết với công ty quốc tế
Liên hệ :
Email: hello@hatonet.vn
Zalo: https://zalo.me/hatonet