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