Tạo mới controller trong CodeIgniter.
Trong CodeIgniter, tất cả các file controller đều được viết trong file application/controllers.
Trong đó xuất hiện dòng code: if ( ! defined(‘BASEPATH’)) exit(‘No direct script access allowed’);
Đây là dòng security bảo vệ file nó không cho truy cập thẳng vào file mà phải thông qua 1 file index.php ở mức ngoài cùng.
Tiếp đến là lớp CI_Controller của CI, tất cả các controller đều phải kế thừa CI_Controller thì mới sử dụng được thư viện của CI. Tên của Controller phải viết hoa.
Hàm index là là 1 phương thức hay action của controller Hello.
Nếu các bạn chưa biết controller là gì thì có thể tham khảo tại đây
Truyền biến vào Controller
Trong mô hình MVC của các Framwork, biến truyền vào theo phương thức GET đều có dạng “domain.com/controller/action/parameter1/parameter2/…
Để gọi ra action trên ta gõ: Localhost/CodeIgniter-3.1.13/hello/other
Để truyền tham số ta gõ: Localhost/CodeIgniter-3.1.13/hello/index/123/hello
Kết quả sẽ được trả ra như trên.
Xác định controller mặc định
Controller mặc định là controller sẽ được gọi khi trên url bn không gọi đến 1 controller nào.
Ta vào file application/config/routes.php rồi sửa ở câu lệnh $route['default_controller']
Hàm khởi tạo
Trong lập trình hướng đối tượng thì tất cả các lớp đối tượng có hàm khởi tạo, hàm này sẽ chạy đầu tiên khi bạn khởi tạo một đối tượng mới. Trong PHP hàm khởi tạo được quy ước là đặt trùng tên với tên Lớp hoặc là bạn đặt tên __construct().
Nếu trong Controller bạn muốn sử dụng hàm khởi tạo thì bắt buộc bạn phải gọi đến hàm khởi tạo của cha nó (CI_Controller), vì trong PHP nếu hàm con kế thừa hàm cha mà hàm con có hàm khởi tạo thì nó sẽ chạy hàm khởi tạo của con chứ không chạy hàm khởi tạo của cha, mà trong hàm khởi tạo của cha lại chứa những đoạn code thiết lập hệ thống cho CI nên bắt buộc phải chạy nó.
class Hello extends CI_Controller
{
// Hàm khởi tạo
function __construct() {
// Gọi đến hàm khởi tạo của cha
parent::__construct();
}
public function index()
{
echo 'Freetuts.net';
}
}