Конфигурация

Обзор

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 - Добавлены основные конфигурации.