Системные настройки
В корне проекта находится папка с файлами настроек config, которая содержит следующие файлы с настройками:
- models.php - активные модели
- plugins.php - активные плагины
- routes.php - маршруты для связывания URL и шаблонов
- settings.php - общие настройки
- setup.php - базовые настройки для для запуска проекта, рекомендуется заполнять основные настройки в корневом файле .env
Настройки оформлены в виде обычных и ассоциированных массивов. Можно добавлять дополнительные собственные настройки и они буду доступны в любом месте проекта через класс Registry, основанный на паттерне Singleton.
Основные настройки в файле .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 - отображение отладочной панели на всех view.
- AdminFolder - название папки с административной панелью, для изменения папки надо изменить настройку и переименовать папку.
- SessionSupport - поддержка стандартной PHP сессии.
- FilesPath - папка с пользовательскими файлами, также полезные методы для работы с файлами есть в разделах Специальные методы и Файлы и изображения.
- ModelVersionsLimit - ограничение на количество версий записей для всех активных моделей. Для каждой модели данный параметр может быть установлен индивидуально, подробнее в разделе Настройка модели.
Доступ к настройкам
Для доступа к настройкам в моделях и шаблонах используется класс Registry, который доступен внутри всех компонентов MV, а также внутри объекта $mv. Класс Registry использует единый массив для хранения настроек, поэтому названия в файлах .env, settings.php и setup.php не должны пересекаться.
В классах моделей значение 'MainPath' (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 начало работы