구성
개요
Flight는 애플리케이션의 요구사항에 맞게 프레임워크의 다양한 측면을 구성할 수 있는 간단한 방법을 제공합니다. 일부는 기본값으로 설정되어 있지만, 필요에 따라 재정의할 수 있습니다. 또한 애플리케이션 전체에서 사용할 수 있도록 자신만의 변수를 설정할 수 있습니다.
이해하기
set 메서드를 통해 구성 값을 설정하여 Flight의 특정 동작을 사용자 정의할 수 있습니다.
Flight::set('flight.log_errors', true);app/config/config.php 파일에서 사용할 수 있는 모든 기본 구성 변수를 확인할 수 있습니다.
기본 사용법
Flight 구성 옵션
다음은 사용 가능한 모든 구성 설정 목록입니다:
- flight.base_url
?string- Flight가 하위 디렉토리에서 실행되는 경우 요청의 기본 URL을 재정의합니다. (기본값: null) - flight.case_sensitive
bool- URL에 대한 대소문자 구분 매칭. (기본값: false) - flight.handle_errors
bool- Flight가 모든 오류를 내부적으로 처리하도록 허용합니다. (기본값: true) - flight.log_errors
bool- 웹 서버의 오류 로그 파일에 오류를 기록합니다. (기본값: false)- Tracy를 설치한 경우, Tracy는 이 구성이 아닌 Tracy 구성에 따라 오류를 기록합니다.
- flight.debug
bool- 오류 발생 시 브라우저에 상세한 오류 정보(예외 메시지, 코드, 스택 추적)를 출력합니다. (기본값: false)- 프로덕션에서는 절대 활성화하지 마세요 — 내부 애플리케이션 세부 정보가 노출될 수 있습니다. 로컬 개발 또는 스테이징에서만 사용하세요.
false인 경우, 대신 일반적인500 Internal Server Error가 표시됩니다. 서버 측에서 오류를 캡처하려면flight.log_errors와 함께 사용하세요.
- flight.allow_method_override
bool-X-HTTP-Method-Override요청 헤더 또는 POST 본문의_method필드를 통해 HTTP 메서드를 재정의할 수 있도록 허용합니다. (기본값: true)- HTML 폼 기반 메서드 스푸핑이 필요하지 않은 애플리케이션의 경우
false로 설정하는 것이 권장됩니다. 이는 클라이언트가 표준 POST 폼을 통해DELETE또는PUT요청을 위조하는 것을 방지합니다. - 자세한 내용은 보안을 참조하세요.
- HTML 폼 기반 메서드 스푸핑이 필요하지 않은 애플리케이션의 경우
- flight.views.path
string- 뷰 템플릿 파일이 포함된 디렉토리. (기본값: ./views) - flight.views.extension
string- 뷰 템플릿 파일 확장자. (기본값: .php) - flight.content_length
bool-Content-Length헤더를 설정합니다. (기본값: true)- Tracy를 사용하는 경우, Tracy가 올바르게 렌더링할 수 있도록 이 값을 false로 설정해야 합니다.
- flight.v2.output_buffering
bool- 레거시 출력 버퍼링을 사용합니다. v3로 마이그레이션을 참조하세요. (기본값: false)
로더 구성
로더를 위한 추가 구성 설정이 있습니다. 이를 통해 클래스 이름에 _가 있는 클래스를 자동 로드할 수 있습니다.
// 밑줄이 있는 클래스 로딩 활성화
// 기본값은 true입니다
Loader::$v2ClassLoading = false;변수
Flight는 애플리케이션의 어디에서나 사용할 수 있도록 변수를 저장할 수 있게 해줍니다.
// 변수 저장
Flight::set('id', 123);
// 애플리케이션의 다른 위치에서
$id = Flight::get('id');변수가 설정되었는지 확인하려면 다음을 수행할 수 있습니다:
if (Flight::has('id')) {
// 무언가 수행
}다음과 같이 변수를 지울 수 있습니다:
// id 변수 지우기
Flight::clear('id');
// 모든 변수 지우기
Flight::clear();참고: 변수를 설정할 수 있다고 해서 설정해야 하는 것은 아닙니다. 이 기능은 신중하게 사용하세요. 여기에 저장된 모든 것은 전역 변수가 되기 때문입니다. 전역 변수는 애플리케이션의 어디에서나 변경될 수 있어 버그를 추적하기 어렵게 만듭니다. 또한 단위 테스트와 같은 작업을 복잡하게 만들 수 있습니다.
오류 및 예외
flight.handle_errors가 true로 설정된 경우, 모든 오류와 예외는 Flight에 의해 포착되어 error 메서드로 전달됩니다.
기본 동작은 일부 오류 정보와 함께 일반적인 HTTP 500 Internal Server Error 응답을 보내는 것입니다.
자신의 요구사항에 맞게 이 동작을 재정의할 수 있습니다:
Flight::map('error', function (Throwable $error) {
// 오류 처리
echo $error->getTraceAsString();
});기본적으로 오류는 웹 서버에 기록되지 않습니다. 다음 구성을 변경하여 이를 활성화할 수 있습니다:
Flight::set('flight.log_errors', true);404 찾을 수 없음
URL을 찾을 수 없는 경우, Flight는 notFound 메서드를 호출합니다. 기본 동작은 간단한 메시지와 함께 HTTP 404 Not Found 응답을 보내는 것입니다.
자신의 요구사항에 맞게 이 동작을 재정의할 수 있습니다:
Flight::map('notFound', function () {
// 찾을 수 없음 처리
});참고 항목
문제 해결
- 구성의 모든 값을 찾는 데 문제가 있는 경우,
var_dump(Flight::get());를 수행할 수 있습니다.
변경 로그
- v3.18.1 -
flight.debug및flight.allow_method_override구성 옵션 추가. - v3.5.0 - 레거시 출력 버퍼링 동작을 지원하기 위해
flight.v2.output_buffering구성 추가. - v2.0 - 핵심 구성 추가.