CodeBộ điều khiển Igniter, Định tuyến chế độ xem: Học qua ví dụ
⚡ Tóm tắt thông minh
T CodeVí dụ Igniter này xây dựng một ứng dụng nhỏ để minh họa cách định tuyến, bộ điều khiển và giao diện người dùng hoạt động cùng nhau. Một dự án mới được tạo bằng Composer, các tuyến đường được ánh xạ. URLCác phương thức được gán cho bộ điều khiển, và mỗi phương thức tải một khung nhìn trả về HTML cho trình duyệt.
Trong hướng dẫn này, bạn sẽ học các chủ đề sau:
- Định tuyến – bộ định tuyến chịu trách nhiệm phản hồi URL yêu cầu. Định tuyến phù hợp với URL đến các tuyến đường được xác định trước. Nếu không tìm thấy tuyến đường phù hợp, CodeIgniter báo lỗi "không tìm thấy trang".
- Bộ điều khiển – Các tuyến đường được liên kết với các bộ điều khiển. Các bộ điều khiển kết nối các mô hình và giao diện người dùng lại với nhau. Chúng yêu cầu dữ liệu và logic nghiệp vụ từ mô hình và trả về kết quả trong phần trình bày của giao diện người dùng. Một khi... URL Khi dữ liệu được khớp với một tuyến đường, nó sẽ được chuyển tiếp đến hàm công khai của bộ điều khiển. Hàm này tương tác với nguồn dữ liệu và logic nghiệp vụ, sau đó trả về giao diện hiển thị kết quả.
- Cảnh Quan – quan điểm có trách nhiệm trình bày. Một khung nhìn thường là sự kết hợp của HTML, CSS và JavaPhần mã lệnh (Script) chịu trách nhiệm hiển thị trang web cho người dùng. Thông thường, dữ liệu hiển thị được lấy từ cơ sở dữ liệu hoặc nguồn dữ liệu khác có sẵn.
Cách tạo mới CodeDự án Igniter
Chúng ta sẽ sử dụng Composer để tạo dự án mới. Chúng ta sẽ sử dụng máy chủ tích hợp sẵn của PHP, vì vậy không cần thiết phải cài đặt thêm phần mềm nào khác. ApacheTrong hướng dẫn này, chúng ta sẽ sử dụng... Windows Hệ điều hành, vì vậy chúng tôi đã tạo một thư mục Sites trên ổ C. Bạn có thể sử dụng bất kỳ thư mục nào phù hợp với mình.
Mở cửa sổ dòng lệnh hoặc terminal và chạy lệnh sau:
cd C:\Sites
Bây giờ chúng ta sẽ tạo một CodeDự án Igniter sử dụng Composer. Chạy lệnh sau:
composer create-project CodeIgniter/framework ci-app
Đây:
- Lệnh trên tạo ra một cái mới CodeTôi đã sao chép dự án Igniter phiên bản 3, sử dụng bản phát hành ổn định mới nhất (3.1.9 tại thời điểm viết bài), vào thư mục có tên là ci-app.
Khi lệnh hoàn tất quá trình thực thi, bạn sẽ thấy kết quả tương tự như sau trong cửa sổ terminal:
Chạy lệnh sau để truy cập vào thư mục dự án mới được tạo ci-app:
cd ci-app
Bây giờ hãy khởi động máy chủ web tích hợp sẵn của PHP:
php -S localhost:3000
Đây:
- Lệnh trên khởi động máy chủ PHP tích hợp sẵn đang chạy trên cổng 3000.
Mở trình duyệt web và truy cập vào địa chỉ sau: URL: http://localhost:3000/. Bạn sẽ nhận được trang sau:
Nếu bạn thấy được trang hiển thị ở trên, xin chúc mừng, bạn đã cài đặt thành công. CodeIgniteTrang này được hiển thị bởi view nằm trong application/views/welcome_message.php, và controller chịu trách nhiệm nằm trong application/controllers/Welcome.php.
CodeĐịnh tuyến Igniter
Hiện tại, ứng dụng của chúng tôi chỉ có một chức năng duy nhất. URLĐây là trang chủ. Trong phần này, chúng ta sẽ tùy chỉnh phần trang chủ và tạo một số tính năng mới. URLnhững thứ đáp ứng các yêu cầu khác nhau.
Chúng ta hãy bắt đầu với tuyến đường trang chủ. Mở tệp routes tại đường dẫn bên dưới:
application/config/routes.php
Bạn sẽ thấy nội dung sau:
$route['default_controller'] = 'welcome'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE;
Đây:
- $route['default_controller'] = 'welcome'; định nghĩa bộ điều khiển mặc định phản hồi các yêu cầu URI.
- `$route['404_override'] = ”;` cho phép bạn định nghĩa một tuyến đường tùy chỉnh cho lỗi 404. Lỗi 404 xảy ra khi không tìm thấy trang. CodeIgniter có trình xử lý lỗi mặc định, nhưng bạn có thể tự định nghĩa trình xử lý riêng nếu muốn.
- `$route['translate_uri_dashes'] = FALSE;` cho phép bạn chuyển đổi dấu gạch ngang thành dấu gạch dưới. Chúng ta sẽ thảo luận về tùy chọn này khi xem xét cách thức hoạt động của các tuyến đường trong... CodeBộ đánh lửa.
Bây giờ chúng ta hãy xem phương thức điều khiển chịu trách nhiệm hiển thị trang chủ mà chúng ta đã thấy khi mở ứng dụng. http://localhost:3000/Mở tệp sau:
application/controllers/Welcome.php
Bạn sẽ thấy đoạn mã sau:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Welcome extends CI_Controller { public function index() { $this->load->view('welcome_message'); } }
Đây:
- defined('BASEPATH') OR exit('No direct script access allowed'); bảo vệ chống lại việc truy cập trực tiếp vào lớp controller mà không thông qua tệp index.php. Trong mô hình MVC, tất cả các yêu cầu đều có một điểm truy cập duy nhất, điều này giúp ngăn chặn việc truy cập trực tiếp vào lớp controller mà không thông qua tệp index.php. CodeIgniter là index.php. Đoạn mã này chặn tất cả các yêu cầu không đến từ index.php.
- class Welcome extends CI_Controller {…} định nghĩa một lớp Welcome kế thừa từ lớp cha CI_Controller.
- Hàm public function index() định nghĩa một hàm công khai được gọi mặc định khi bạn mở trang chủ.
- $this->load->view('welcome_message'); tải trang hiển thị welcome_message, nằm trong thư mục application/views/welcome_message.php.
Cho đến nay, chúng ta mới chỉ khám phá những gì có sẵn bên trong hộp sản phẩm. CodeIgniter. Bây giờ chúng ta hãy thực hiện một số thay đổi. Chúng ta sẽ tạo trang chủ riêng và thay thế trang mặc định. Tạo một tệp mới tại application/views/home.php và thêm đoạn mã sau:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> CodeIgniter Hello World </h1> </div> </section> </body> </html>
Đây: Đoạn mã HTML trên tải khung CSS Bulma và Font Awesome từ CDN và tạo ra một tài liệu HTML rất cơ bản. Nó áp dụng một quy tắc CSS đơn giản từ khung CSS Bulma.
Mở phần sau URL trong trình duyệt của bạn: http://localhost:3000/. Bạn sẽ thấy như sau:
Tuyệt vời, chúng ta đã sửa đổi trang chủ thành công. Tiếp theo, hãy định nghĩa đường dẫn của chúng ta. Giả sử ứng dụng của chúng ta cũng cần hiển thị trang giới thiệu.
Tạo lộ trình
Mở tệp định tuyến application/config/routes.php và thêm tuyến đường sau:
$route['about-us'] = 'welcome/about_us';
Đây:
- Khi một du khách ghé thăm URL /về chúng tôi, chúng tôi hướng dẫn CodeIgniter sẽ tìm kiếm bộ điều khiển Welcome và thực thi phương thức about_us.
Tạo bộ điều khiển
Bây giờ chúng ta hãy định nghĩa phương thức điều khiển about_us. Mở tệp application/controllers/Welcome.php và thêm phương thức sau:
public function about_us(){
$this->load->view('about_us');
}
Đây:
- Đoạn mã trên định nghĩa một hàm có tên là about_us và tải một view có tên là about_us.
Tạo chế độ xem
Bây giờ chúng ta hãy tạo giao diện mà chúng ta vừa đề cập. Tạo một tệp mới có tên about_us.php trong thư mục application/views/about_us.php và thêm đoạn mã sau:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>About CodeIgniter!</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.2/css/bulma.min.css"> <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script> </head> <body> <section class="section"> <div class="container"> <h1 class="title"> About us yap... </h1> </div> </section> </body> </html>
Chúng ta đã sẵn sàng. Hãy mở những thứ sau đây. URL trong trình duyệt web của bạn: http://localhost:3000/index.php/about-us. Bạn sẽ thấy trang sau:
Nếu bạn có thể nhìn thấy trang ở trên, xin chúc mừng, bạn đã tạo thành công một ứng dụng đơn giản. CodeBộ đánh lửa.





