Dans le développement d'applications Web, Page Jump est une exigence commune. Les développeurs PHP utilisent généralement des fonctions d'en-tête pour obtenir des sauts, mais leur utilisation a certaines limites et le code peut être répété. Pour améliorer la maintenabilité et la propreté du code, la logique de saut peut être encapsulée.
Nous pouvons gérer uniformément les opérations de saut en encapsulant une fonction appelée redirection .
Les fonctions prennent en charge les URL de saut entrantes, les codes d'état HTTP et les informations d'en-tête personnalisées:
/**
* Sauter à spécifiéURL
* @param string $url Adresse de destination
* @param int $statusCode HTTPCode d'état,défaut302
* @param array $headers PersonnaliserHTTPtête,Formulaire de paire de valeurs clés
*/
function redirect(string $url, int $statusCode = 302, array $headers = [])
function redirect(string $url, int $statusCode = 302, array $headers = []) {
// installationHTTPCode d'état
http_response_code($statusCode);
// 添加Personnalisertête
foreach ($headers as $name => $value) {
header("$name: $value");
}
// Effectuer un saut
header("Location: $url");
exit;
}
Cette implémentation utilise http_response_code pour définir le code d'état, ajouter un en-tête personnalisé via l'en-tête et finit enfin le saut à l'aide de l'en-tête de localisation pour s'assurer que l'exécution du script est terminée.
Après encapsulation, appeler la fonction de saut est plus concis et flexible.
redirect('https://example.com');
Cet appel dirigera l'utilisateur vers la page https://example.com .
Prise en charge des codes d'état pour atteindre différents comportements de saut, tels que le saut permanent:
redirect('https://new.example.com', 301);
Cet appel renvoie un code d'état 301, indiquant un saut permanent.
Les informations d'en-tête peuvent être transmises par le troisième paramètre pour répondre aux besoins spéciaux:
redirect('https://example.com', 302, [
'Referer' => 'https://previous-page.com'
]);
Lors du saut, l'en-tête du référence sera d'abord réglé, puis le saut sera effectué.
En encapsulant l'opération de saut, non seulement améliore la clarté et la réutilisabilité du code, mais facilite également le contrôle flexible du comportement de saut. Qu'il s'agisse d'ajuster le code d'état ou d'ajouter des en-têtes personnalisés, la fonction d'encapsulation peut répondre efficacement aux besoins diversifiés, qui est une pratique recommandée dans le développement du backend PHP.