Thứ Hai, 30 tháng 7, 2018

PHP - Yêu cầu & phản hồi

Lập trình PHP Yêu cầu HTTP và phản hồi HTTP đóng một vai trò quan trọng trong bất kỳ ứng dụng web nào. Chúng tôi cần có được các chi tiết đầy đủ về yêu cầu http để xử lý nó đúng cách. Sau khi xử lý, chúng tôi cần gửi dữ liệu đã xử lý cho khách hàng thông qua phản hồi http.

PHP cung cấp lớp Yêu cầu và Phản hồi xuất sắc để đọc và viết yêu cầu HTTP và phản hồi HTTP tương ứng. Hãy để chúng tôi tìm hiểu về cả lớp Yêu cầu và Phản hồi trong chương này.

Yêu cầu

Trong một ứng dụng web điển hình, ứng dụng cần phân tích các chi tiết của yêu cầu hiện tại. Lớp yêu cầu cung cấp các phương thức đơn giản để phân tích cú pháp yêu cầu hiện tại sẽ được ứng dụng xử lý. Yêu cầu cũng cung cấp tùy chọn để tạo yêu cầu mới bằng cách hoạt động như một ứng dụng khách http.

Việc tạo một yêu cầu mới cho phép ứng dụng yêu cầu một phần khác của ứng dụng hoặc hoàn toàn một ứng dụng khác và hiển thị kết quả. Chúng ta hãy tìm hiểu cách phân tích cú pháp yêu cầu đến trong chương này và tìm hiểu cách tạo một yêu cầu mới trong chương Yêu cầu HMVC.

Phân tích cú pháp một yêu cầu

Lớp yêu cầu cung cấp ba phương thức để có được các chi tiết của yêu cầu http. Chúng như sau,

active - Đây là một phương thức tĩnh, trả về yêu cầu http đang hoạt động hiện tại.
$currentRequest = Request::active();
param - Nó trả về giá trị của tham số được chỉ định. Nó chứa hai đối số. Đối số đầu tiên là tên tham số và đối số thứ hai là giá trị trả về, nếu tham số không có sẵn trong yêu cầu http hiện tại.
$param = Request::active()->param('employee_name', 'none');


params - Nó giống như param ngoại trừ nó trả về tất cả các tham số như một mảng.$params = Request::active()->params();

Thí dụ

Chúng ta hãy tạo một biểu mẫu đơn giản và xử lý biểu mẫu bằng cách sử dụng lớp yêu cầu.

Bước 1 - Tạo một hành động mới, action_request trong bộ điều khiển nhân viên.
public function action_request() { 
}


public function action_request() { 
   $params = Request::active()->params(); 
}


public function action_request() { 
   $params = Request::active()->params();  
   echo dump($params); 
}
Bước 4 - Thay đổi định tuyến để bao gồm các tham số trong tệp cấu hình tuyến đường, nhiên liệu / app / config / routes.php
'employee/request(/:name)?' => array('employee/request', 'name' => 'name'),
Bây giờ, yêu cầu hành động mới, http: // localhost: 8080 / employee / request / Jon, nó sẽ hiển thị phản hồi sau.

ảnh minh họa PHP

Phản ứng

Lớp phản hồi cung cấp các tùy chọn để tạo ra một phản hồi http. Theo mặc định, chúng tôi không cần sử dụng lớp phản hồi trực tiếp trong hầu hết các trường hợp. Thay vào đó, chúng ta sử dụng View (mà chúng ta sẽ tìm hiểu trong chương tiếp theo) để tạo ra phản hồi http. Xem ẩn phản hồi http từ nhà phát triển và gửi phản hồi cho khách hàng bằng cách sử dụng lớp Responsebên dưới . Trong trường hợp nâng cao, chúng tôi sử dụng lớp Phản hồi trực tiếp và tạo một phản hồi http hoàn chỉnh.

Tạo phản hồi

Phản hồi bao gồm tiêu đề và nội dung. Tiêu đề chính là mã trạng thái http. Mã trạng thái Http là các mã tiêu chuẩn được định nghĩa trong giao thức HTTP để mô tả phản hồi. Ví dụ: mã trạng thái, 200 nghĩa là yêu cầu thành công.

Lớp đáp ứng cung cấp ba đối số để tạo phản hồi http,

$ body - body của câu trả lời http

$ status_code - mã trạng thái của phản hồi http

$ headers - tiêu đề tùy chọn dưới dạng mảng
$body = "Hi, FuelPHP"; 
$headers = array ( 
   'Content-Type' => 'text/html', 
); 
$response = new Response($body, 200, $headers);


   $body = "Hi, FuelPHP"; 
   $headers = array ('Content-Type' => 'text/html',); 
   $response = new Response($body, 200, $headers); 
   
   return $response; 
}

Kết quả

ảnh minh họa PHP

Phương pháp

Lớp đáp ứng cung cấp rất nhiều phương thức để thao tác các câu trả lời http. Chúng như sau,

giả mạo - Nó giống như hàm tạo lớp phản hồi như đã thấy ở trên.
return Response::forge("Hi, FuelPHP", 404);
chuyển hướng - Nó cung cấp tùy chọn để chuyển hướng đến một URL thay vì gửi một phản hồi. Nó chứa các đối số sau,

a.url - url đích b. phương pháp - phương pháp chuyển hướng. vị trí (mặc định) và làm mới c . redirect_code - mã trạng thái http. Giá trị mặc định là 302.
// use a URL 
Response::redirect('http://some-domain/index', 'refresh');  

// or use a relative URI 
Response::redirect('employee/list'); 

Response::redirect_back('/employee/list', 'refresh');

$response->set_status(404); 

$response->set_header('Content-Type', 'application/pdf');  

// replace previous value using third arguments 
$response->set_header('Content-Type', 'application/pdf', 'text/plain'); 
set_headers - Nó giống như set_header ngoại trừ nó cung cấp một tùy chọn để đặt nhiều tiêu đề bằng mảng.
$response = new Response(); 
$response->set_headers (array 
   'Content-Type' => 'application/pdf', 
   'Pragma' => 'no-cache', 
)); 
get_header - Nó cho phép để có được các chi tiết tiêu đề thiết lập trước đó.
$response = new Response(); 
$response->set_header('Pragma', 'no-cache');  

// returns 'no-cache' 
$header = $response->get_header('Pragma');  

// returns array('Pragma' => 'no-cache') 
$header = $response->get_header();
body - Nó cung cấp một tùy chọn để thiết lập phần thân của câu trả lời http.
$response = new Response(); 
$response->body('Hi, FuelPHP');  

// returns 'Hi, FuelPHP' 
$body = $response->body();
send_headers - Nó gửi các tiêu đề đến máy khách được yêu cầu. PHP sử dụng phương pháp này để gửi phản hồi cho khách hàng. Thông thường, chúng ta không cần sử dụng phương pháp này.
$response->send_headers();
gửi - Giống như send_headers ngoại trừ tiêu đề có thể bị hạn chế trong phản hồi http.
// send the headers as well 
$response->send(true);  

// only send the body 
$response->send(false); 
$response->send(); 

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...