Конфигурация
Обзор
Flight предоставляет простой способ настройки различных аспектов фреймворка в соответствии с потребностями вашего приложения. Некоторые из них установлены по умолчанию, но вы можете переопределить их по необходимости. Вы также можете установить свои собственные переменные для использования в приложении.
Понимание
Вы можете настроить определенные поведения Flight, устанавливая значения конфигурации
через метод set.
Flight::set('flight.log_errors', true);В файле app/config/config.php вы можете увидеть все доступные по умолчанию переменные конфигурации.
Основное использование
Опции конфигурации Flight
Ниже приведен список всех доступных настроек конфигурации:
- flight.base_url
?string- Переопределение базового URL запроса, если Flight работает в поддиректории. (по умолчанию: null) - flight.case_sensitive
bool- Учет регистра при сопоставлении URL. (по умолчанию: false) - flight.handle_errors
bool- Разрешить Flight обрабатывать все ошибки внутренне. (по умолчанию: true)- Если вы хотите, чтобы Flight обрабатывал ошибки вместо поведения PHP по умолчанию, это должно быть true.
- Если у вас установлен Tracy, вы хотите установить это в false, чтобы Tracy мог обрабатывать ошибки.
- Если у вас установлен плагин APM, вы хотите установить это в true, чтобы APM мог логировать ошибки.
- flight.log_errors
bool- Логировать ошибки в файл лога ошибок веб-сервера. (по умолчанию: false)- Если у вас установлен Tracy, Tracy будет логировать ошибки на основе конфигураций Tracy, а не этой конфигурации.
- flight.views.path
string- Директория, содержащая файлы шаблонов представлений. (по умолчанию: ./views) - flight.views.extension
string- Расширение файла шаблона представления. (по умолчанию: .php) - flight.content_length
bool- Установить заголовокContent-Length. (по умолчанию: true)- Если вы используете Tracy, это должно быть установлено в false, чтобы Tracy мог правильно отображаться.
- 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 и передаются в метод error.
если flight.handle_errors установлено в true.
Поведение по умолчанию — отправить общий ответ HTTP 500 Internal Server Error
с некоторой информацией об ошибке.
Вы можете переопределить это поведение для своих нужд:
Flight::map('error', function (Throwable $error) {
// Обработать ошибку
echo $error->getTraceAsString();
});По умолчанию ошибки не логируются на веб-сервере. Вы можете включить это, изменив конфигурацию:
Flight::set('flight.log_errors', true);404 Not Found
Когда URL не может быть найден, Flight вызывает метод notFound. Поведение
по умолчанию — отправить ответ HTTP 404 Not Found с простым сообщением.
Вы можете переопределить это поведение для своих нужд:
Flight::map('notFound', function () {
// Обработать не найдено
});См. также
- Расширение Flight - Как расширить и настроить основную функциональность Flight.
- Юнит-тестирование - Как писать юнит-тесты для вашего приложения Flight.
- Tracy - Плагин для продвинутой обработки ошибок и отладки.
- Расширения Tracy - Расширения для интеграции Tracy с Flight.
- APM - Плагин для мониторинга производительности приложения и отслеживания ошибок.
Устранение неисправностей
- Если у вас проблемы с определением всех значений вашей конфигурации, вы можете сделать
var_dump(Flight::get());
Журнал изменений
- v3.5.0 - Добавлена конфигурация для
flight.v2.output_bufferingдля поддержки устаревшего поведения буферизации вывода. - v2.0 - Добавлены основные конфигурации.