2026-08-20 22:37:44 +03:00
# Флаги функций разработки
2026-08-21 16:31:01 +03:00
XC_VM использует константы и флаги, управляемые настройками, для управления поведением среды.
2026-08-20 22:37:44 +03:00
2026-09-16 22:04:48 +03:00
Константы приложения определяются отображением `appConfig()` в `src/Core/Config/ConstantsInitializer.php` .
2026-08-20 22:37:44 +03:00
---
## Активный флаг времени выполнения
### `PHP_ERRORS`
```php
define ( 'PHP_ERRORS' , $rShowErrors ); // derived from $rSettings['debug_show_errors']
```
2026-09-16 22:04:48 +03:00
`PHP_ERRORS` управляет PHP/подробностью отладки и выводом на экран регистратора:
2026-08-20 22:37:44 +03:00
```php
Logger :: init ( PHP_ERRORS , LOGS_TMP_PATH . 'error_log.log' );
```
### `DB_ACCESS_ENABLED`
```php
define ( 'DB_ACCESS_ENABLED' , false ); // enables phpMiniAdmin tab/page in admin panel
```
`DB_ACCESS_ENABLED` управляет доступом к phpMiniAdmin только из пользовательского интерфейса администратора.
2026-08-27 18:07:43 +03:00
Это не блокирует подключения к базе данных основного приложения. Его спутник `DB_ACCESS_PWD`
2026-09-16 22:04:48 +03:00
(также на карте `appConfig()` ) устанавливает пароль, защищающий эту страницу — оставьте его пустым, чтобы сохранить
2026-08-27 18:07:43 +03:00
отключите вкладку, устанавливайте строгое значение только тогда, когда оно вам нужно.
### `DEV_MODE`
```php
define ( 'DEV_MODE' , false ); // master development-mode flag
```
2026-09-16 22:04:48 +03:00
`DEV_MODE` - это переключатель разработки во время компиляции (`bootstrap.php` считывает его в `self::$devMode` ).
2026-08-27 18:07:43 +03:00
Когда `true` включается `PHP_ERRORS` (подробные ошибки на экране), запускается диагностика повторной проверки,
и обеспечивает другие удобства для разработчиков.
> ⚠️ **Никогда не включайте `DEV_MODE` или `debug_show_errors` в рабочей среде** — оба раскрывают внутренние
> ошибки/пути к посетителям. `PHP_ERRORS` заканчивается на `true`, если **любой** константа `DEV_MODE` равна
> установлено (путь начальной загрузки) **или** значение `debug_show_errors` включено (путь защиты запроса); это
> правило разрешения, когда они накладываются друг на друга.
2026-08-20 22:37:44 +03:00
---
## Флаги, зависящие от настроек (`$rSettings`)
Загружается из кэша настроек и используется в точках принятия решений во время выполнения.
|Ключ|Тип|Значение|
| --- | --- | --- |
| `debug_show_errors` | `bool` |показывать подробные результаты ошибок/отладки|
| `recaptcha_enable` | `bool` |включите reCAPTCHA v2 при входе в систему|
| `verify_host` | `bool` |принудительная проверка списка разрешений хоста|
| `save_login_logs` | `bool` |постоянные попытки входа в систему в `login_logs` |
2026-09-11 20:12:09 +03:00
| `fanout_supervise` | `bool` |передача прямых трансляций супервизору xc_fanout вместо монитора PHP (по умолчанию включен)|
| `fanout_source_backend` |`auto` / `ffmpeg` / `native` |как преобразуются исходные тексты в MPEG-TS; под наблюдением, будут ли потоки, предназначенные только для копирования, запускать собственный ремиксер (`auto` : с резервным копированием ffmpeg)|
2026-08-20 22:37:44 +03:00
Эти значения загружаются из `CACHE_TMP_PATH/settings` защитниками запросов.
---
## Статические константы приложения
2026-09-16 22:04:48 +03:00
Из карты `appConfig()` в `src/Core/Config/ConstantsInitializer.php` (каждая запись является
`define()` заменено на `ConstantsInitializer::init()` ):
2026-08-20 22:37:44 +03:00
```php
2026-09-16 22:04:48 +03:00
'DB_ACCESS_ENABLED' => false ,
'DB_ACCESS_PWD' => '' , // password for the phpMiniAdmin tab (empty = off)
'DEV_MODE' => false , // master development-mode switch
'XC_VM_VERSION' => '2.4.1' , // bumped every release — treat as illustrative
'GIT_OWNER' => 'Vateron-Media' ,
'GIT_REPO_MAIN' => 'XC_VM' ,
'GIT_REPO_UPDATE' => 'XC_VM_Update' ,
'GIT_REPO_BIN' => 'XC_VM_Binaries' ,
'GIT_REPO_FANOUT' => 'XC_VM_Fanout' , // xc_fanout daemon source + binaries
'GIT_REPO_PROXY' => 'XC_VM_Proxy' ,
'MONITOR_CALLS' => 3 ,
'OPENSSL_EXTRA' => '...' , // literal fallback; the real per-install secret is read
// from the config/openssl_extra file by init()
2026-08-20 22:37:44 +03:00
```
---
## Добавление новых флагов
2026-09-16 22:04:48 +03:00
Используйте статические константы в карте `appConfig()` (`ConstantsInitializer.php` ) для фиксированных констант инфраструктуры/среды выполнения (отредактированных в
2026-08-27 18:07:43 +03:00
код, вступающий в силу при следующем запросе). Используйте настройки (`$rSettings` ) для значений, которые оператор переключает
из панели администратора (страница **Настройки** ) — они сохраняются в таблице `settings` базы данных и
считывается с `CACHE_TMP_PATH/settings` .
2026-08-20 22:37:44 +03:00
2026-08-27 18:07:43 +03:00
Избегайте определения одного и того же поведения в обоих местах. Когда они неизбежно пересекаются (как в случае
`DEV_MODE` против `debug_show_errors` → `PHP_ERRORS` ), эффективным значением является **операционная** из двух —
выигрывает любой из вариантов, включающий его.
2026-08-20 22:37:44 +03:00
---
## Связанные файлы
|Файл|Цель|
| --- | --- |
2026-09-16 22:04:48 +03:00
| `src/Core/Config/ConstantsInitializer.php` |статические константы приложения (`appConfig()` map)|
2026-08-20 22:37:44 +03:00
| `src/Core/Http/RequestGuard.php` |загружает `$rSettings` , устанавливает `PHP_ERRORS` |
2026-08-21 16:31:01 +03:00
| `src/Core/Error/ErrorHandler.php` |использует поведение `debug_show_errors` |
2026-08-20 22:37:44 +03:00
| `src/Core/Logging/Logger.php` |поведение при отладке/детализации|