設定
概要
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- Webサーバーのエラーログファイルにエラーを記録します。(デフォルト: 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();
});デフォルトでは、エラーはWebサーバーに記録されません。以下のように設定を変更することでこれを有効にできます:
Flight::set('flight.log_errors', true);404 Not Found
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 - コア設定を追加。