Системные настройки
В корне проекта находится папка с файлами настроек config, которая содержит следующие файлы с настройками:
- models.php - активные модели
- plugins.php - активные плагины
- routes.php - маршруты для связывания URL и шаблонов
- settings.php - общие настройки
- setup.php - базовые настройки для для запуска проекта, рекомендуется заполнять основные настройки в корневом файле .env
Настройки оформлены в виде обычных и ассоциированных массивов. Можно добавлять дополнительные собственные настройки и они буду доступны в любом месте проекта через класс Registry, основанный на паттерне Singleton.
Главные настройки проекта расположены в .env файле в корне сайта. Возможно создание нескольких .env файлов для заполнения данных сразу для нескольких серверов, например локального, тестового и рабочего. Env файлы ищутся в заданном порядке, как только первый файл по списку найден, он признается текущим файлом с настройками и поиск прекращается.
Порядок обработки .env файлов:
.env
.env.local
.env.development
.env.stage
.env.demo
.env.test
.env.production
.env.empty - не обрабатываетсяНастройки из .env файла кэшируются в папку /userfiles/cache. В режиме production настройки сразу берутся, из кэша и для сброса кэша нужно либо очистить папку /userfiles/cache, либо правильнее обновить номер билда в файле config/setup.php.
Основные настройки в файле .env
APP_ENV - режим работы development/production
APP_DOMAIN - доменное имя с http(s)
APP_FOLDER - директория проекта, / - если проект в корне домена
APP_TIMEZONE - временная зона
APP_TOKEN - секретный ключ для генерации хэшей
APP_REGION - локализация (en, us, ru, de)Прочие настройки из файлов config/setup.php и config/settings.php
- Build - номер текущего билда приложения, влияет на обновление кэша, рекомендуется увеличивать номер на 1 при заливке новой версии кода на production сервер.
- DebugPanel - отображение отладочной панели с данными о текущем запросе, скорости генерации страницы и количестве SQL запросов, внизу на всех view.
- UnderMaintenance - выключения сайта (доступ к админ панели остается открытым) и показ сообщения о технических работах на сайте.
- AdminFolder - название папки с административной панелью, для изменения папки надо изменить настройку и переименовать папку.
- SessionSupport - поддержка стандартной PHP сессии.
- FilesPath - папка с пользовательскими файлами, также полезные методы для работы с файлами есть в разделах Специальные методы и Файлы и изображения.
- ModelVersionsLimit - ограничение на количество версий записей для всех активных моделей. Для каждой модели данный параметр может быть установлен индивидуально, подробнее в разделе Настройка модели.
- EmailSignature - подпись к email сообщениям, отправляемым с сайта, подробнее в разделе Отправка email.
Доступ к настройкам
Для доступа к настройкам в моделях и шаблонах используется класс Registry, который доступен внутри всех компонентов MV, а также внутри объекта $mv. Класс Registry использует единый массив для хранения настроек, поэтому названия в файлах .env, settings.php и setup.php не должны пересекаться.
В классах моделей значение 'MainPath' или ‘APP_FOLDER’ из .env файла (URL от корня домена до проекта, на рабочем сервере обычно ‘/’) доступно как свойство $root_path, аналогичное свойство также есть у объекта, описанного в разделе Объект MV.
//Примеры получения настроек из любого места
Registry::get('APP_DOMAIN');
//Файловый корень проекта
Registry::get('IncludePath');
//Секретный ключ
Registry::get('APP_TOKEN');
//Максимальный размер файла
Registry::get('MaxFileSize');
//Внутри класса модели или плагина
class Articles extends Model
{
...
public function display()
{
...
$html .= Registry::get('MainPath').'article/'.$row['id'];
//или аналогично
$html .= $this -> root_path.'article/'.$row['id'];
}
}
//Можно на лету добавлять собственные настройки и они будут доступны во всем проекте
Registry::set('MySetting', 57);
Registry::set('SpecialSetting', ['a', 'b', 'c']);
Предыдущий раздел
SQLite начало работы