Heim > Artikel > Backend-Entwicklung > So verwenden Sie Middleware in CodeIgniter, um Anfragen und Antworten zu verarbeiten
So verwenden Sie Middleware in CodeIgniter, um Anfragen und Antworten zu verarbeiten
Einführung:
CodeIgniter ist ein leichtes PHP-Framework, das häufig zur Entwicklung von Webanwendungen verwendet wird. Da Projekte wachsen und komplexer werden, müssen wir häufig Anfragen und Antworten vor- oder nachbearbeiten. Um diesen Zweck zu erreichen, können wir Middleware für eine einheitliche Anforderungsfilterung und Antwortverarbeitung verwenden. In diesem Artikel wird die Verwendung von Middleware in CodeIgniter vorgestellt.
// application/controllers/Welcome.php
class Welcome erweitert CI_Controller {
public function index() { $this->load->view('welcome_message'); }
}
// application/views/welcome_message.php
100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e
b2386ffb911b14667cb8f0f91ea547a7Willkommen bei CodeIgniter6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
4a249f0d628e2318394fd9b75b4636b1Willkommen bei CodeIgniter473f0a7621bec819994bb5020d29372a
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e
$config['enable_hooks'] = TRUE;
Als nächstes müssen wir dies tun Erstellen Sie eine Middleware-Klasse. Wir erstellen eine neue Middleware.php-Datei im Verzeichnis application/hooks. Das Codebeispiel lautet wie folgt:
// application/hooks/Middleware.php
class Middleware {
protected $CI; public function __construct() { $this->CI = &get_instance(); } public function process_request() { // 在这里进行请求的预处理操作 // 例如权限验证、日志记录等 } public function process_response() { // 在这里进行响应的后处理操作 // 例如数据处理、日志记录等 }
}
In der Middleware-Klasse erstellen wir zuerst Sie müssen die CodeIgniter-Instanz abrufen (über die Methode get_instance()) und sie dann in einer Klassenmitgliedsvariablen im Konstruktor speichern. Auf diese Weise können wir alle Funktionen von CodeIgniter in der Middleware nutzen.
In der Methode „process_request()“ können wir Code für die Anforderungsvorverarbeitung schreiben. Beispielsweise können wir hier eine Berechtigungsüberprüfung durchführen. Wenn der Benutzer keine Berechtigung zum Zugriff auf eine bestimmte Seite oder Schnittstelle hat, können wir die Anfrage abbrechen oder zu anderen Seiten springen.
In der Methode „process_response()“ können wir Code für die Post-Response-Verarbeitung schreiben. Beispielsweise können wir hier die Antwortdaten verarbeiten oder Protokolle aufzeichnen.
$hook['post_controller_constructor'] = array(
'class' => 'Middleware', 'function' => 'process_request', 'filename' => 'Middleware.php', 'filepath' => 'hooks'
);
$hook['post_controller'] = array(
'class' => 'Middleware', 'function' => 'process_response', 'filename' => 'Middleware.php', 'filepath' => 'hooks'
);
Im obigen Code haben wir zwei Hooks verwendet: post_controller_constructor und post_controller.
Der post_controller_constructor-Hook wird nach dem Controller-Konstruktor aufgerufen, aber vor dem Aufruf der Controller-Methoden. Dies ist ein guter Zeitpunkt, um die Anfrage etwas vorzuverarbeiten.
Der post_controller-Hook wird nach dem Aufruf der Controller-Methode aufgerufen, aber bevor die Antwort an den Client gesendet wird. Dies ist ein guter Zeitpunkt für die Nachbearbeitung der Antwort.
// application/controllers/Welcome.php
class Welcome erweitert CI_Controller {
public function index() { // 打印出请求信息,测试中间件工作正常 print_r($this->input->server('REQUEST_URI')); exit; }
}
Dieser Code wird ausgedruckt fordert den URI an, bevor die Controller-Methode ausgeführt wird, und stoppt die Programmausführung. Auf diese Weise können wir überprüfen, ob die Middleware die Anfrage korrekt verarbeitet hat.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Middleware in CodeIgniter, um Anfragen und Antworten zu verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!