Xem bài viết Học Codeigniter Framework với 2Cweb ( Phần 5)

Học Codeigniter Framework với 2Cweb ( Phần 5)

A. AUTOLOAD TRONG CODEIGNITER

Phần này làm việc chủ yếu trong file autoload.php trong thư mục application/config. CodeIgniter hỗ trợ chúng ta tự động autoload 6 nội dung sau:
1. Packages: thư mục mình tự đặt
2. Libraries: nằm trong thư mục "libraries".
3. Helper files: nằm trong thư mục "helpers".
4. Custom config files: nằm trong thư mục "config".
5. Language files: nằm trong thư mục "system/language".
6. Models: nằm trong thư mục "models".
Nếu muốn load các thành phần trên thì mình dùng như sau:
	// 1. Load Libraries
	$autoload['libraries'] = array('các libraries muốn load');
	//=== Ví dụ
	$autoload['libraries'] = array('database', 'session', 'pagination','email');
	
	// 2. Load Helpers
	$autoload['helper'] = array();
	//=== Ví dụ
	$autoload['helper'] = array('url', 'file');
	
	// 3. Load Config
	$autoload['config'] = array();
	//=== Ví dụ
	$autoload['config'] = array('config1', 'config2');
	
	// 4. Load Language
	$autoload['language'] = array();
	//=== Ví dụ
	$autoload['language'] = array('en', 'codeigniter');
	// Với 'en' và 'codeigniter' thì các file tương ứng của nó là: en_lang.php và codeigniter_lang.php
	
	// 5. Load Model
	$autoload['model'] = array();
	//=== Ví dụ
	$autoload['model'] = array('model1', 'model2');
	
Việc autoload các thành phần có tác dụng cho ta đỡ phải khai báo và viết lại trong Controller hoặc Model nếu các bạn biết chắc chắn là các thành phần sẽ được dùng trong ứng dụng, nếu không ứng dụng của bạn sẽ rất nặng khi load lên.
Nếu các bạn không muốn load tự động thì trong Controller mình cần viết như sau (ví dụ thôi nhá các bạn):
class Home extends CI_Controller{
	
	// Hàm Constructor
	function Home(){
		parent::__construct();
		$this->load->library('pagination');
		$this->load->helper('captcha');
		$this->load->model('model1');
		
		// Hai thằng này hơi khác biệt tí
		$this->config->load('mylib');
		$this->lang->load('filename', 'language');
	}
}
Để xem chi tiết hơn các bạn có thể vào document của CodeIgniter xem thêm nhá.

B. LOẠI BỎ index.php TRÊN URL

Để làm điều này thì trước tiên mình cần tạo file .htaccess trong thư mục gốc của ứng dụng với nội dung sau:
	RewriteEngine on
	RewriteCond $1 !^(index.php|resources|robots.txt)
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Sau đó bạn vào file config.php trong thư mục application/config tìm dòng:
	$config['index_page'] = 'index.php';
Và thay đổi thành:
	$config['index_page'] = '';
Để biết được đoạn code ta có hoạt động và loại bỏ index.php được hay không thì ta sẽ tạo một Controller để test như sau:
class Home extends CI_Controller{
	
	// Hàm Constructor
	function Home(){
		parent::__construct();
	}
	
	// Một phương thức test
	function test($param = null){
		
		echo "
" ; echo ''; // để hiển thị được tiếng việt echo '

ĐÃ LOẠI BỎ index.php TRÊN ĐƯỜNG DẪN

' ; echo "
" ; } }
Ta mở trình duyệt và truy cập tới đường dẫn sau: http://localhost/codeIgniter_2cweb/home/test/
Học Codeigniter Framework với 2Cweb ( Phần 5) - rỡ bỏ index.php trên đường dẫn trong CodeIgniter
Ta thấy rằng khi truy cập đến một phương thức khác trong Controller ngoài phương thức chạy chính thì ta không cần phải ghi index.php trên dường dẫn.
Thế là xong, các bài viết tiếp theo mình sẽ tập trung viết về các chức năng code nhiều hơn, các bạn nhớ đón xem nhé :)

Kết luận

Bạn có thích bài viết này không? Nếu có hãy giúp mình like bài viết này nhé hoặc bạn có thể chia sẽ bài này đến những người mà bạn nghĩ họ quan tâm, xin cảm ơn!

Mọi ý kiến đóng góp hay thắc mắc bạn có thể gởi về cho chúng tôi qua form bình luận phía dưới. Cám ơn bạn đã ghé thăm web mình và xin chúc bạn thành công!

Nguồn: 2Cweb.vn

 

Leave a Comments