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
$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!