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

Огляд

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 - Додано основні конфігурації.