웹 응용 프로그램 개발에서 Page Jump는 일반적인 요구 사항입니다. PHP 개발자는 일반적으로 헤더 기능을 사용하여 점프를 달성하지만 사용에는 특정 제한 사항이 있으며 코드가 반복 될 수 있습니다. 코드의 유지 관리 및 청결성을 향상시키기 위해 점프 로직을 캡슐화 할 수 있습니다.
리디렉션 이라는 함수를 캡슐화하여 점프 작업을 균일하게 관리 할 수 있습니다.
함수는 점프 URL, HTTP 상태 코드 및 사용자 정의 헤더 정보를 통과하는 지원을 지원합니다.
/**
* 지정된 것으로 점프하십시오URL
* @param string $url 목적지 주소
* @param int $statusCode HTTP상태 코드,기본302
* @param array $headers 사용자 정의하십시오HTTP머리,키 값 쌍 양식
*/
function redirect(string $url, int $statusCode = 302, array $headers = [])
function redirect(string $url, int $statusCode = 302, array $headers = []) {
// 설정HTTP상태 코드
http_response_code($statusCode);
// 添加사용자 정의하십시오머리
foreach ($headers as $name => $value) {
header("$name: $value");
}
// 점프를 수행하십시오
header("Location: $url");
exit;
}
이 구현은 http_response_code를 사용하여 상태 코드를 설정하고 헤더를 통해 사용자 정의 헤더를 추가 한 다음 마지막 헤더 를 사용하여 점프를 완료하여 스크립트 실행이 종료되도록합니다.
캡슐화 후 점프 기능을 호출하는 것이 더 간결하고 유연합니다.
redirect('https://example.com');
이 호출은 사용자를 https://example.com 페이지로 안내합니다.
영구적 인 점프와 같은 다른 점프 동작을 달성하기위한 상태 코드 설정 지원 :
redirect('https://new.example.com', 301);
이 호출은 301 상태 코드를 반환하여 영구적 인 점프를 나타냅니다.
헤더 정보는 특별한 요구를 충족시키기 위해 세 번째 매개 변수를 통해 전달 될 수 있습니다.
redirect('https://example.com', 302, [
'Referer' => 'https://previous-page.com'
]);
점프 할 때는 참조 헤더가 먼저 설정되고 점프가 수행됩니다.
점프 작동을 캡슐화함으로써 코드의 명확성과 재사용 성을 향상시킬뿐만 아니라 점프 동작의 유연한 제어를 용이하게합니다. 상태 코드를 조정하든 사용자 정의 헤더 추가하든 캡슐화 기능은 다양한 요구를 효과적으로 지원할 수 있으며, 이는 PHP 백엔드 개발에서 권장되는 관행입니다.