CodeIgniter에서 미들웨어를 사용하여 요청 및 응답을 처리하는 방법
소개:
CodeIgniter는 웹 애플리케이션 개발에 널리 사용되는 경량 PHP 프레임워크입니다. 프로젝트가 성장하고 복잡해짐에 따라 요청과 응답을 사전 처리하거나 사후 처리해야 하는 경우가 많습니다. 이러한 목적을 달성하기 위해 통합 요청 필터링 및 응답 처리를 위해 미들웨어를 사용할 수 있습니다. 이번 글에서는 CodeIgniter에서 미들웨어를 사용하는 방법을 소개하겠습니다.
// application/controllers/Welcome.php
class Welcome 확장 CI_Controller {
public function index() { $this->load->view('welcome_message'); }
}
// application/views/welcome_message.php
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e b2386ffb911b14667cb8f0f91ea547a7CodeIgniter에 오신 것을 환영합니다6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
4a249f0d628e2318394fd9b75b4636b1CodeIgniter에 오신 것을 환영합니다473f0a7621bec819994bb5020d29372a
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
class Middleware {
protected $CI; public function __construct() { $this->CI = &get_instance(); } public function process_request() { // 在这里进行请求的预处理操作 // 例如权限验证、日志记录等 } public function process_response() { // 在这里进行响应的后处理操作 // 例如数据处理、日志记录等 }}미들웨어 클래스에서 먼저 (get_instance() 메서드를 통해) CodeIgniter 인스턴스를 얻은 다음 생성자의 클래스 멤버 변수에 저장해야 합니다. 이렇게 하면 미들웨어에서 CodeIgniter의 모든 기능을 사용할 수 있습니다. process_request() 메서드에서 요청 전처리를 위한 코드를 작성할 수 있습니다. 예를 들어, 여기서 권한 확인을 수행할 수 있습니다. 사용자에게 특정 페이지나 인터페이스에 대한 액세스 권한이 없으면 요청을 중단하거나 다른 페이지로 이동할 수 있습니다. process_response() 메서드에서 사후 응답 처리를 위한 코드를 작성할 수 있습니다. 예를 들어 여기에서 응답 데이터를 처리하거나 로그를 기록할 수 있습니다.
'class' => 'Middleware', 'function' => 'process_request', 'filename' => 'Middleware.php', 'filepath' => 'hooks');$hook['post_controller'] = array(
'class' => 'Middleware', 'function' => 'process_response', 'filename' => 'Middleware.php', 'filepath' => 'hooks');
위 코드에서는 post_controller_constructor와 post_controller라는 두 개의 후크를 사용했습니다. post_controller_constructor 후크는 컨트롤러 생성자 다음에 호출되지만 컨트롤러 메서드를 호출하기 전에 호출됩니다. 요청에 대한 사전 처리를 수행하기에 좋은 시기입니다. post_controller 후크는 컨트롤러 메서드를 호출한 후 클라이언트에 응답을 보내기 전에 호출됩니다. 이는 응답의 사후 처리를 수행하기에 좋은 시간입니다.
class Welcome 확장 CI_Controller {
public function index() { // 打印出请求信息,测试中间件工作正常 print_r($this->input->server('REQUEST_URI')); exit; }}이 코드는 다음을 인쇄합니다. 컨트롤러 메서드가 실행되기 전에 URI를 요청하고 프로그램 실행을 중지합니다. 이렇게 하면 미들웨어가 요청을 올바르게 처리했는지 확인할 수 있습니다.
위 내용은 CodeIgniter에서 미들웨어를 사용하여 요청과 응답을 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!