XEM MỤC LỤC CÁC BÀI VIẾT CODEIGNITER
Cài đặt framework CodeIgniter
Ghi
chú: bài hướng dẫn này chỉ thực hiện được khi bạn đã
tải xuống và cài đặt framework CodeIgniter 3.1.9 trong môi trường lập trình web
PHP của bạn.
->chọn
: Download CodeIgniter 3 và giải nén vào 01 thư mục (Ví dụ: CI) trong thư mục
www
Ta
sẽ có các thư mục con như: application ,system ,…Đến đây là xong phần cài đặt
framework Code Igniter
Điều đầu tiên bạn cần làm là thiết lập 01 controller
để xử lý các trang tĩnh.
01 controller đơn giản là 01 lớp giúp ủy quyền 01
hoạt động.
Nó là chất kết dính trong ứng dụng web của bạn.
Ví dụ khi có 01 truy cập đến đường dẫn:
http://example.com/news/latest/10
Chúng ta có thể tưởng tượng rằng có 01 controller tên
là “news”.
Phương thức được gọi trên news sẽ là “latest”.
Công việc của phương thức này có thể là thu lượm 10 mẩu tin mới nhất, và hiển thị chúng lên trang web.
Trong cấu trúc MVC ta rất thường gặp 01 kiểu bố trí URL như vầy:
Phương thức được gọi trên news sẽ là “latest”.
Công việc của phương thức này có thể là thu lượm 10 mẩu tin mới nhất, và hiển thị chúng lên trang web.
Trong cấu trúc MVC ta rất thường gặp 01 kiểu bố trí URL như vầy:
http://example.com/[lớp-controller]/[phương-thức-controller]/[tham-số]
Trong loạt bài này mình sẽ chạy framework CodeIgniter
trên môi trường localhost nên đường dẫn đến 01 controller sẽ là:
http://localhost/thư-mục-CodeIgniter/index.php/[lớp-controller]/[phương-thức-controller]/[tham-số]
Cũng có thể bố cục URL trong thực tế sẽ phức tạp
hơn, nhưng bây giờ tạm thời là vậy.
Ta tạo 01 tập tin tại application/controllers/Pages.php
chứa đoạn mã sau:
<?php
class
Pages extends
CI_Controller {
public function view($page
= 'home')
{
}
}
Ta đã tạo ra 01 lớp có tên là Pages,
với 01 phương thức view chấp nhận 01 tham số tên là $page.
Lớp Pages kế thừa từ lớp CI_Controller .
Điều này có nghĩa là lớp mới pages có thể truy cập các phương thức và các biến xác định trong lớp CI_Controller (system/core/Controller.php).
Lớp Pages kế thừa từ lớp CI_Controller .
Điều này có nghĩa là lớp mới pages có thể truy cập các phương thức và các biến xác định trong lớp CI_Controller (system/core/Controller.php).
Controller sẽ trở thành trung tâm của mọi truy
vấn đến ứng dụng web của bạn.
Trong các thảo luận về CodeIgniter nó được xem như là 01 siêu chủ đề.
Cũng giống như bất kỳ lớp php nào, bạn có thể truy cập bên trong các controllers của bạn bằng biến $this.
Dùng biến $this là cách để ta tải các thư viện, các views, và các lệnh chính của framework.
Trong các thảo luận về CodeIgniter nó được xem như là 01 siêu chủ đề.
Cũng giống như bất kỳ lớp php nào, bạn có thể truy cập bên trong các controllers của bạn bằng biến $this.
Dùng biến $this là cách để ta tải các thư viện, các views, và các lệnh chính của framework.
Bây giờ bạn tạo phương thức đầu tiên của mình , bằng
cách tạo vài trang biểu mẫu cơ bản.
Chúng ta sẽ tạo 02 trang “views” (trang mẫu) để hiển thị phần footer và header.
Chúng ta sẽ tạo 02 trang “views” (trang mẫu) để hiển thị phần footer và header.
Tạo trang header tại application/views/templates/header.php
và gõ đoạn mã sau:
<html>
<head>
<title>Hướng
dẫn CodeIgniter</title>
</head>
<body>
<h1><?php
echo $title; ?></h1>
Trang header chứa các đoạn mã HTML cơ bản của phần
đầu trang web mà bạn muốn hiển thị trước khi tải xuống phần view chính.
Nó cũng xuất ra biến $title , mà chúng ta sẽ khai báo sau trong controller.
Bây giờ, tạo 01 trang footer tại application/views/templates/footer.php chứa đoạn mã sau:
Nó cũng xuất ra biến $title , mà chúng ta sẽ khai báo sau trong controller.
Bây giờ, tạo 01 trang footer tại application/views/templates/footer.php chứa đoạn mã sau:
<em>©
2015</em>
</body>
</html>
Thêm logic vào controller
Trước đây bạn thiết lập 01 controller với 01 phương
thức tên là view() .
Phương thức chấp nhận 01 tham số là tên của trang sẽ được tải.
Các trang tĩnh mẫu sẽ đặt ở thư mục application/views/pages/
Phương thức chấp nhận 01 tham số là tên của trang sẽ được tải.
Các trang tĩnh mẫu sẽ đặt ở thư mục application/views/pages/
Trong thư mục đó , ta tạo 02 tập tin tên là home.php
và about.php.
Bên trong các tập tin này , gõ dòng chữ nào đó và lưu lại (Ví dụ: “Lophocvitinh.COM xin chào CodeIgniter!”).
Bên trong các tập tin này , gõ dòng chữ nào đó và lưu lại (Ví dụ: “Lophocvitinh.COM xin chào CodeIgniter!”).
Để tải các trang đó, bạn sẽ phải kiểm tra các trang
được yêu cầu có thực sự tồn tại hay không:
public
function view($page
= 'home')
{
if ( ! file_exists(APPPATH.'views/pages/'.$page.'.php'))
{
// Xin lỗi, chúng
tôi không có 01 trang như vậy!
show_404();
}
$data['title']
= ucfirst($page);
// Viết Hoa đầu từ
$this->load->view('templates/header',
$data);
$this->load->view('pages/'.$page,
$data);
$this->load->view('templates/footer',
$data);
}
Bây giờ, nếu bạn tạo đủ các trang trên nó sẽ được
tải xuống, bao gồm cả phần header và footer, và hiển thị lên trình duyệt của
người dùng.
Nếu các trang home không tồn tại thông báo “404 Page not found” sẽ xuất hiện.
Nếu các trang home không tồn tại thông báo “404 Page not found” sẽ xuất hiện.
Dòng đầu tiên trong phương thức này kiểm tra trang home.php có tồn tại không.
Hàm file_exists() của PHP được dùng để kiểm tra tập tin có tồn tại ở nơi mong muốn không.
Hàm show_404() là 01 hàm riêng của CodeIgniter dùng hiển thị trang lỗi mặc định.
Hàm file_exists() của PHP được dùng để kiểm tra tập tin có tồn tại ở nơi mong muốn không.
Hàm show_404() là 01 hàm riêng của CodeIgniter dùng hiển thị trang lỗi mặc định.
Trong phần header mẫu, biến $title
dùng để tùy biến tiêu đề trang.
Giá trị tiêu đề được xác định trong phương thức này, nhưng thay vì gán giá trị vào biến, nó được gán vào phần tử title trong mảng $data (trong ví dụ này là chữ home)
Giá trị tiêu đề được xác định trong phương thức này, nhưng thay vì gán giá trị vào biến, nó được gán vào phần tử title trong mảng $data (trong ví dụ này là chữ home)
Điều cuối cũng phải làm là tải các views trong dự
tính của chúng ta.
Tham số thứ 02 trong phương thức view() được dùng để đưa giá trị vào view.
Mỗi giá trị trong mảng $data được gán vào 01 biến với tên cũng là từ khóa.
Như vậy giá trị của $data['title'] trong controller tương đương với biến $title trong phần view(tập tin header.php).
Tham số thứ 02 trong phương thức view() được dùng để đưa giá trị vào view.
Mỗi giá trị trong mảng $data được gán vào 01 biến với tên cũng là từ khóa.
Như vậy giá trị của $data['title'] trong controller tương đương với biến $title trong phần view(tập tin header.php).
Định tuyến
Controller bây giờ đã hoạt động rồi !
Gõ vào trình duyệt của bạn đường dẫn sau [your-site-url]index.php/pages/view .
Khi bạn vào index.php/pages/view/about bạn sẽ thấy nội dung trang about.php (có cả phần header và footer).
Gõ vào trình duyệt của bạn đường dẫn sau [your-site-url]index.php/pages/view .
Khi bạn vào index.php/pages/view/about bạn sẽ thấy nội dung trang about.php (có cả phần header và footer).
Sử dụng các rules để định tuyến, bạn có quyền gắn
bất kỳ URI vào bất kỳ controller và phương thức nào mong muốn, phá vỡ mọi quy
tắc dựng sẵn:
http://example.com/[lớp-controller]/[phương-thức-controller]/[tham-số]
Ta hãy thử làm xem sao.
Mở tập tin định tuyến tại application/config/routes.php và thêm vào 02 dòng sau .
Xóa hết các dòng mã liên quan đến mảng $route
Mở tập tin định tuyến tại application/config/routes.php và thêm vào 02 dòng sau .
Xóa hết các dòng mã liên quan đến mảng $route
$route['default_controller']
= 'pages/view';
$route['(:any)']
= 'pages/view/$1';
CodeIgniter đọc các qui tắc định tuyến từ trên
xuống dưới và hướng các yêu cầu vào qui tắc nó thấy trùng khớp đầu tiên.
Mỗi qui tắc là 01 regular expression (left-side) khớp với 01 controller và tên phương thức phân cách bằng dấu sổ phải /.
Khi có 01 yêu cầu tới máy chủ, CodeIgniter tìm kiếm câu lệnh khớp đầu tiên, sau đó gọi controller và phương thức thích hợp, có thể kèm theo cả các tham số.
Mỗi qui tắc là 01 regular expression (left-side) khớp với 01 controller và tên phương thức phân cách bằng dấu sổ phải /.
Khi có 01 yêu cầu tới máy chủ, CodeIgniter tìm kiếm câu lệnh khớp đầu tiên, sau đó gọi controller và phương thức thích hợp, có thể kèm theo cả các tham số.
Để biết thêm về định tuyến bạn có thể đọc phần URI Routing trong tài liệu User Guide.
Dòng qui tắc đầu khai báo controller mặc định là pages/view (thay vì welcome như cài đặt
ban đầu). Với pages là tên
controller, view là tên phương thức.
Ở đây, dòng qui tắc thứ 02 trong mảng $routes
dùng chữ đại diện (:any) nghĩa là với bất
kỳ yêu cầu nào sẽ gán đường dẫn đến phương thức view()
của lớp Pages
Bây giờ bạn truy cập index.php/about.
Nó sẽ tự chuyển đến phương thức view() trong controller pages? Thật là vi diệu phải không nào!
Nó sẽ tự chuyển đến phương thức view() trong controller pages? Thật là vi diệu phải không nào!
Như vậy trong hướng dẫn này chúng ta đã tạo ra 05
trang:
application/controllers/Pages.phpapplication/views/templates/header.php
application/views/templates/footer.php
application/views/pages/home.php
application/views/pages/about.php
Và sửa tập tin:
application/config/routes.php
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
XEM MỤC LỤC CÁC BÀI VIẾT CODEIGNITER
By #drM
Nguồn: User Guide của
CodeIgniter
Không có nhận xét nào:
Đăng nhận xét