FuelPHP - Bộ điều khiển
Controllerschịu trách nhiệm xử lý từng yêu cầu gửi đến ứng dụng FuelPHP. Theo FuelPHP, bộ điều khiển được đặt tạifuel/app/classes/controller/. Đầu tiên hãy tạo một Bộ điều khiển nhân viên.
nhân viên.php
<?php
class Controller_Employee extends Controller {
public function action_home() {
echo "FuelPHP-Employee application!";
}
public function action_index() {
echo "This is the index method of employee controller";
}
}
Phương pháp điều khiển
Bộ điều khiển xử lý một yêu cầu web bằng cách sử dụng một trong các action_ các phương pháp. Chúng ta có thể tạo bao nhiêu action_ method tùy thuộc vào yêu cầu của ứng dụng. Phương thức action_ mặc định là action_index . Phương thức action_index có thể được gọi bởi bất kỳ URL nào sau đây.
http://localhost:8080/employee/index
http://localhost:8080/employee/
Kết quả
Hãy để chúng tôi tạo ra một actionmethod, action_show trongemployee ứng dụng.
<?php
class Controller_Employee extends Controller {
public function action_home() {
echo "FuelPHP-Employee application!";
}
public function action_index() {
echo "This is the index method of employee controller";
}
public function action_show() {
echo "This is the show method of employee controller";
}
}
Phương thức action_show có thể được gọi bằng URL sau.
http://localhost:8080/home/show
Kết quả
phương thức before ()
Chúng ta có thể tạo một phương pháp, beforetrong bộ điều khiển của chúng tôi. Phương thức này sẽ được thực thi trước mỗi lần gọi phương thức action_ . Nó sẽ không được gọi nếu phương thức đó hóa ra không tồn tại. Phương pháp này giúp chúng ta viết các thao tác phổ biến như kiểm tra đăng nhập, tìm nạp dữ liệu mặc định, v.v.
Hãy để chúng tôi tạo một phương thức before và in một tin nhắn văn bản đơn giản.
public function before() {
echo "This message comes from <em>before()</em> method</br>";
}
Lập chỉ mục trang với trước khi hành động
Hiển thị trang với trước khi hành động
phương thức after ()
after() phương pháp tương tự như before()nhưng được thực thi sau khi phương thức action_ được gọi. Phương thức after () nhận phản hồi làm đầu vào và trả về đối tượng phản hồi .
public function after($response) {
if ( ! $response instanceof Response) {
$response = \Response::forge($response, $this->response_status);
}
return $response;
}
Nếu đầu vào là NULL hoặc không phải là đối tượng phản hồi, thì hãy tạo một đối tượng Phản hồi mới bằng cách sử dụng phương thức rèn của Phản hồi và trả về. Chúng ta sẽ tìm hiểu chi tiết lớp Response trong các chương tiếp theo.
Mở rộng bộ điều khiển
Chúng tôi có thể mở rộng một bộ điều khiển từ một bộ điều khiển khác. Sau đây là cú pháp cơ bản.
class Controller_Employee extends Controller_Welcome {
// controller methods
}
Điều này sẽ giúp ích trong các phương pháp chia sẻ.
Tạo bộ điều khiển
Fuel có tùy chọn tạo bộ điều khiển bằng lệnh Oil. Sau đây là cú pháp.
Cú pháp
oil g controller <controller-name>
Thí dụ
oil g controller sample
Sau khi thực hiện lệnh trên, bạn sẽ thấy phản hồi sau.
Kết quả
Creating view: /path/to/project/fuel/app/views/template.php
Creating view: /path/to/project/fuel/app/views/sample/index.php
Creating controller: /path/to/project/fuel/app/classes/controller/sample.php
Loại bộ điều khiển
FuelPHP cung cấp các loại bộ điều khiển khác nhau cho nhiều mục đích khác nhau. Chúng như sau:
- Bộ điều khiển cơ sở
- Bộ điều khiển mẫu
- Bộ điều khiển phần còn lại
- Bộ điều khiển hỗn hợp
Bộ điều khiển cơ sở
Bộ điều khiển là bộ điều khiển cơ sở cho tất cả các loại bộ điều khiển khác nhau có sẵn trong FuelPHP. Nó cung cấp tất cả các chức năng cơ bản cần thiết để xử lý một yêu cầu web. Nó hỗ trợ Request, Response, Session, v.v. Chúng tôi sẽ sử dụng nó trong tất cả các ví dụ trừ khi được chỉ định khác.
Bộ điều khiển mẫu
Bộ điều khiển Mẫu là một phần mở rộng của bộ điều khiển cơ sở. Nó có hỗ trợ mẫu, được xác định trước các phương thức before () và after (). Về cơ bản, nó có thể được sử dụng để bao bọc chế độ xem của bạn trong một bố cục với đầu trang, chân trang, thanh bên, v.v. Để tạo bộ điều khiển mẫu, chúng ta cần mở rộng lớp Controller_Template . Theo mặc định, tất cả các phương thức của lớp mở rộng Controller_Template cần phải sử dụng mẫu.
Nó được định nghĩa như sau.
class Controller_Employee extends Controller_Template {
public function action_index() {
// add methods
}
}
Chúng ta sẽ thảo luận thêm về bộ điều khiển mẫu trong chương Chế độ xem.
Bộ điều khiển phần còn lại
Bộ điều khiển phần còn lại là một phần mở rộng của Bộ điều khiển cơ sở. Nó có hỗ trợ được xác định trước cho lập trình API REST. Điều này sẽ cho phép bạn xây dựng các API một cách dễ dàng.
Để tạo bộ điều khiển nghỉ, bạn cần mở rộng lớp Controller_Rest . Nó được định nghĩa như sau.
class Controller_Employee extends Controller_Rest {
public function action_index() {
// add methods
}
}
Chúng ta sẽ thảo luận thêm về bộ điều khiển nghỉ trong chương Ajax.
Bộ điều khiển hỗn hợp
Bộ điều khiển hỗn hợp thực hiện chức năng của cả bộ điều khiển REST và bộ điều khiển Mẫu trong một bộ điều khiển cơ sở duy nhất.