Thứ sáu, 19/07/2013 | 00:00 GMT+7

CodeIgniter: Hiểu kiến thức cơ bản với một VPS


Giới thiệu

CodeIgniter là một khung ứng dụng web PHP đơn giản, rất mạnh mẽ và dễ sử dụng. Nó cung cấp một tập hợp các thư viện và chức năng trợ giúp để cho phép mọi người phát triển ứng dụng của họ nhanh hơn nhiều. Đối với điều này, nó sử dụng kỹ thuật Lập trình hướng đối tượng (OOP) và cách tiếp cận Mô hình-Chế độ xem-Bộ điều khiển (MVC) để tách biệt tốt giữa bản trình bày khỏi logic. Ngoài ra, CodeIgniter sử dụng URL sạch để tránh những URL lấp đầy chuỗi truy vấn xấu xí mà không ai thích.

Bài viết này giả định bạn đã cài đặt CodeIgniter trên môi trường phát triển của bạn và đã thực hiện cấu hình database và URL ban đầu. Bạn có thể tham khảo hướng dẫn này để biết thêm thông tin về cách nhanh chóng cài đặt .

Phương pháp tiếp cận Model-View-Controller (MVC)

Phương pháp lập trình MVC nghĩa là để tách phần trình bày khỏi logic. Điều này nghĩa là bạn có thể có các trang web mà không cần nhiều tập lệnh PHP vì điều này được giữ riêng biệt trong các file khác. Nó đặc biệt hữu ích khi có cả nhà phát triển và nhà thiết kế cùng làm việc trên một ứng dụng, người sau có thời gian dễ dàng hơn nhiều khi tạo phần giao diện user .

Trong CodeIgniter, Mô hình và Bộ điều khiển về cơ bản là các lớp PHP mà bạn phải khai báo, mặc dù mở rộng từ các lớp CI mặc định. Chúng được lưu giữ trong các file riêng biệt (mỗi Bộ điều khiển hoặc Mô hình có file riêng). Mặt khác, Chế độ xem là các trang HTML đơn giản (với phần mở rộng .php) tạo nên trang và chỉ chứa mã PHP tối thiểu - thường bị giới hạn trong việc in các biến và chạy các vòng lặp (tùy thuộc vào công cụ tạo khuôn mẫu bạn sử dụng). Bạn thậm chí có thể bao gồm Chế độ xem trong các Chế độ xem khác nếu bạn muốn.

Bạn có thể thử nghĩ về Mô hình là nơi diễn ra kịch bản nặng nề - truy vấn database , tính toán, v.v. Chế độ xem là nơi thông tin được trình bày bởi server - trang web. Và sau đó Bộ điều khiển là trung gian - nó định tuyến yêu cầu HTTP từ client , sử dụng Mô hình và tải các Chế độ xem cần thiết để trình bày kết quả. Khá đơn giản.

Sử dụng Mô hình là không cần thiết trong CodeIgniter, nhưng tốt hơn. Nếu bạn không sử dụng chúng, bạn sẽ làm lộn xộn các phương thức Bộ điều khiển của bạn với rất nhiều mã và sau đó sẽ khó quản lý nó hơn. Tất nhiên mọi thứ phụ thuộc vào kích thước ứng dụng của bạn.

định tuyến

Vì vậy, bạn có Bộ điều khiển sử dụng Mô hình để thực hiện một số hành động và hiển thị một số thông tin bằng Chế độ xem. Nhưng làm thế nào để thông tin đó được gọi bởi khách hàng? Nói cách khác, CodeIgniter xử lý URL như thế nào?

Rất đơn giản. Giả sử rằng bạn đã làm theo các bước cấu hình URL được đề cập trong hướng dẫn trước , bạn biết rằng URL được tạo theo cách sau (sau khi loại bỏ đoạn index.php xấu xí đó):

http://www.example.com/[controller-class]/[controller-method]/[arguments]

Điều này nghĩa là sau URL cơ sở ( example.com ) là tên lớp, theo sau là tên phương thức (hàm lớp), theo sau là các đối số bạn truyền cho hàm này. Nếu hàm có nhiều đối số hơn, các đối số này sẽ được phân tách trong URL bằng dấu gạch chéo. Đây là một cấu trúc rất hay và dễ hiểu.

Hơn nữa, bạn có một số tùy chọn định tuyến nâng cao để thoát khỏi tiêu chuẩn này. Giả sử bạn có một ứng dụng đơn giản với mặt trước chỉ sử dụng một Bộ điều khiển và phương pháp. Bạn có thể làm cho phương thức Bộ điều khiển tương ứng là hàm mặc định được gọi khi user trỏ trình duyệt đến URL cơ sở. Ngoài ra, bạn có thể tạo một số luật theo đó bất kỳ luật nào được truyền sau URL cơ sở đại diện cho các đối số cho phương thức này. Để thực hiện việc này, hãy mở và chỉnh sửa file route.php nằm trong folder application / config / .

Với cài đặt CodeIgniter mặc định, bạn sẽ thấy thông tin sau ở đâu đó trong file đó:

$route['default_controller'] = "welcome";

Bộ default_controller là Bộ điều khiển được gọi theo mặc định nếu không có gì được chuyển sau URL cơ sở. Thay đổi điều này để phản ánh tên của Bộ điều khiển của bạn:

$route['default_controller'] = "your_controller";

Sau khi bạn lưu file này và chuyển đến URL cơ sở của bạn , phương thức index () của your_controller sẽ được gọi. Đây là phương thức mặc định được gọi nếu Bộ điều khiển được yêu cầu trong URL nhưng không có phương thức nào được chỉ định. Bây giờ, hãy chỉnh sửa lại nó bằng cách thêm phương thức bạn muốn được gọi theo mặc định:

$route['default_controller'] = "your_controller/your_method";

Bây giờ, nếu bạn chuyển đến URL cơ sở của bạn , your_controller sẽ gọi your_method . Tuy nhiên, để hoàn thành những gì ta đã đặt ra, ta cần thêm một dòng khác vào file route.php , ngay bên dưới dòng nơi bạn đặt default_controller :

$route['(:any)'] = 'your_controller/your_method/$1';

Điều này sẽ đảm bảo nếu bạn thêm một cái gì đó sau URL cơ sở, nó sẽ không được coi là Bộ điều khiển mà là đối số cho your_method nằm trong your_controller . Lưu file và chạy thử để xem. Bạn không cần phải lo lắng về việc phải chuyển vào URL của tên Controller và phương thức. Bạn có thể chỉ định trực tiếp các đối số ngay sau URL cơ sở. Và có rất nhiều biến thể ở đây và bạn có thể thử để thực hiện một số định tuyến phức tạp.

Lưu ý: Nếu bạn đang thắc mắc về xung đột giữa các luật định tuyến, CodeIgniter sẽ đọc các luật từ trên xuống dưới và gửi yêu cầu đến tuyến phù hợp đầu tiên.

Thư viện và Người trợ giúp

CodeIgniter được trang bị rất nhiều thư viện và chức năng trợ giúp để giúp bạn dễ dàng hơn khi phát triển ứng dụng của bạn . Nhưng không giống như nhiều giải pháp khác ngoài kia, toàn bộ khung công tác vẫn rất nhẹ vì chúng không được tải tất cả ngay từ đầu. Bạn tự tải chúng khi cần trong ứng dụng.

Ví dụ: để sử dụng thư viện Database (hoặc lớp) trong bộ điều khiển của bạn, bạn có thể tải nó bằng dòng đơn giản này theo bất kỳ phương thức nào bạn cần:

$this->load->database();

Tuy nhiên, bạn cũng có tùy chọn để tự động tải thư viện và trình trợ giúp. Điều này nghĩa là ứng dụng sẽ bao gồm chúng ngay từ đầu để bạn không phải bận tâm đến việc tải chúng riêng lẻ trong các Bộ điều khiển khác nhau.

Lớp database và trình trợ giúp URL là những ví dụ điển hình về thư viện và trình trợ giúp có ý nghĩa tự động tải khi bạn sử dụng chúng khá thường xuyên. Cái đầu tiên có một mẫu Active Record rất mạnh mẽ để tương tác với database trong khi cái thứ hai có một số chức năng hữu ích để xuất liên kết hoặc tải các URL khác nhau.

Để tự động tải ở trên, hãy mở file autoload.php trong folder application / config / và nơi bạn tìm thấy dòng:

$autoload['libraries'] = array();

Thay thế bằng:

$autoload['libraries'] = array('database');

Mảng cần phải chứa tên của các lớp thư viện mà bạn cần tự động tải. Mỗi thư viện phải là một mục trong mảng.

Đối với người trợ giúp, bạn cần thêm tên người trợ giúp vào mảng này theo cách tương tự. Thay thế cái này:

$autoload['helper'] = array();

với

$autoload['helper'] = array('url');

Sau khi bạn lưu file , khi ứng dụng của bạn tải, các thư viện và trình trợ giúp này sẽ có sẵn ở mọi nơi. Sau đó, bạn cũng có thể xác định các thư viện của riêng mình nếu bạn muốn mở rộng khuôn khổ.

Kết luận

CodeIgniter là công cụ rất mạnh với nhiều cách để tận dụng khả năng của nó; do đó, rất khó để bao quát tất cả mọi thứ ở một nơi. Tuy nhiên, đây là một số khái niệm quan trọng nhất bạn cần biết trước khi bắt đầu. Trong hướng dẫn tiếp theo, bạn sẽ nhận được một ví dụ về cách áp dụng tất cả những điều này và tạo một ứng dụng đơn giản để truy vấn database và hiển thị thông tin cho trình duyệt.


Tags:

Các tin trước