#1 Cấu trúc Framewok Code Igniter
Application: Folder này sẽ chứa toàn bộ core của framework của chúng ta nó bao gồm các folder con với mỗi Folder sẽ có 1 tác dụng riêng biệt
- Config: Folder này sẽ chứa những file config cho ứng dụng bao gồm các config như autoload các Library cũng như thông tin về Database
- Error: Folder này sẽ chứa các Template của các Error. Lỗi nào sẽ dc sử dụng template để show ra cho là tùy vào đây.
- Helpers: Chứa các Helper đặc tả cho ứng dụng của bạn.
- Hooks: Nơi để Modify những Function của CI. Nơi dành cho những chuyên gia làm việc. (Người thường không nên mò vào đây :D)
- Language: Nơi để thiết lập 1 site Multi Language
- Libraries: Chứa các Library để phục vụ cho việc sử dụng trong ứng dụng như (Master Layout….).. Các bạn tìm hiểu rồi giúp mình bổ sung thêm phía dưới nha
- Controller, Model & View : Chắc mình không cần giải thích nhỉ ^^!.
Ngoài ra còn có folder System : Mình cũng chưa mò qua bên này thử xem nó làm gì. Mà thôi chúng ta chỉ cần thao tác trên folder application là đủ roài. Có gì khi nào nhuần nhuyễn application rồi chúng ta sẽ mò qua nghiên cứu bên System này. (Mình sẽ update sau khi tìm hiểu hết application).
#2 Config Framework
2.1 Config Base URL
Mở file /application/config/config.php sửa lại base url lại thành link của bạn. ở đây ShopManagement chính là folder chưa Source code của mình
ví dụ:
$config['base_url'] = "http://localhost/ShopManagement/";
Test thử xem nó có chạy chưa. Bạn paste link trên vào trình duyệt. Chạy được thì ngon lành rầu
2..2 Config cấu hình database:
Tiếp tục vào: application/config/database.php để config database cho app của bạn các thông số chính mặc định như sau
$db['default']['hostname'] = "localhost"; $db['default']['username'] = "root"; $db['default']['password'] = ""; $db['default']['database'] = "databaseName"; $db['default']['dbdriver'] = "mysql";
2.3 Config auto load các thư viện cần thiết cho website:
Tiếp theo tại file: application/config/autoload.php chúng ta sẽ config để autoload những gì chúng ta cần khi khởi động website
Mục đích của việc autoload này làm gì? Là giống như chúng ta new 1 đối tượng common để dùng xuyên suốt chương trình vậy đó. Ví dụ: Connect database, load Master Layout….
Tìm đến đoạn
$autoload['libraries'] = array();
Thay bằng:
$autoload['libraries'] = array('database');
Ở đây là 1 mảng nên bạn có thể load nhiều library cũng được
Ví dụ:
$autoload['libraries'] = array('database','session', 'layout', .....);
NOTE: Nếu bạn không muốn auto load connect database khi chương trình chạy. Thì bạn có thể load thủ công tại từng model cũng được (cái này thì mắc công với lại thiếu sót hơn. Tương tự đối với các Library khác cũng thế.
Ví dụ ở 1 function Constructer của 1 Model bất kỳ
public function __construct() { $this->load->database(); }
2.4 Config Controller mặc định khi chạy app:
Config Controller mặc định khi chạy app. Mặc định khi Extract CI ra controller sẽ là welcome. Giờ mình không muốn nữa. Mình đổi thành Home chẳng hạn. Thì mình sẽ thay đổi như sau: trong file application/config/routes.php sửa thành
$route['default_controller'] = "Home";
Xong bạn hãy chạy thử chạy app của mình và xem điều kỳ diệu.
Hãy đón xem tiếp phần 3 để giải đáp điều kỳ diệu đó 😀
#3 Config file .htaccess
Bạn cần sửa value chỗ bôi đậm thành Value của Web bạn như sau. Đây là đường dẫn folder Web của bạn trong Hosting.
RewriteEngine On RewriteBase /mpdn/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond $1 !^(index\.php|images|robots\.txt|css|docs|js|system) RewriteRule ^(.*)$ /mpdn/index.php?/$1 [L]