Конфигурация
Конфигурация фреймворка Medusa хранится в каталоге www/config/. Здесь задаются параметры приложения,
подключения к базе данных, почты, очередей, хранилища, автозагрузчика и фронтенд-сборки.
app.php
Файл www/config/app.php хранит общие параметры приложения и содержит карту пространств имён для
автозагрузчика medusa/Start/Loader.php. Например, в нём можно задать базовый адрес сайта через ключ
APP_URL, флаг установки часового пояса приложения через APP_SET_UTC_TIME_ZONE и настроить
автозагрузку классов:
$_ENV['APP_URL'] = 'http://localhost:8001';
$_ENV['APP_SET_UTC_TIME_ZONE'] = true;
$_ENV['LOADER_ASSOC_NAMESPACE_DIRECTORY'] = [
'Medusa' => 'medusa',
'App' => 'app',
];
В этом примере задаётся базовый адрес приложения, включается установка часового пояса PHP в UTC и
настраивается карта пространств имён, где поиск классов ядра из пространства имён Medusa будет выполнен в
каталоге www/medusa/, а пользовательские классы из пространства имён App — в каталоге
www/app/.
APP_URL— базовый адрес приложения, напримерhttp://localhost:8001;APP_SET_UTC_TIME_ZONE— включать ли установку часового пояса PHP вUTC;-
LOADER_ASSOC_NAMESPACE_DIRECTORY— карта пространств имён и каталогов для автозагрузчика.
database.php
Файл www/config/database.php содержит параметры подключения к базе данных:
-
BOOTSTRAP_PDO_AUTOCONNECT— включать ли автоподключение к базе данных в bootstrap; PDO_TYPE— драйвер базы данных, напримерmysql;PDO_HOST— хост базы данных, напримерlocalhost;PDO_PORT— порт базы данных, например3306;PDO_NAME— имя базы данных, напримерapp;PDO_CHARSET— кодировка соединения, напримерutf8;PDO_USER— имя пользователя, напримерmedusa;PDO_PASSWORD— пароль пользователя;-
PDO_OPTIONS— дополнительные настройки PDO:-
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION— выбрасывать исключения при ошибках; -
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC— возвращать записи как ассоциативные массивы; PDO::ATTR_EMULATE_PREPARES => true— включить эмуляцию prepared statements.
-
DB_WAIT_TIMEOUT— таймаут ожидания неактивного соединения в секундах.-
DB_SET_UTC_TIME_ZONE— включать ли установку часового пояса сессии базы данных вUTC.
Для отдельного CLI-скрипта или воркера итоговый флаг автоподключения к базе данных можно переопределить служебной
PHP-константой BOOTSTRAP_OVERRIDE_PDO_AUTOCONNECT до подключения файла www/medusa/index.php.
Если такая константа определена, она имеет приоритет над параметром конфигурации
BOOTSTRAP_PDO_AUTOCONNECT.
mail.php
Файл www/config/mail.php задаёт параметры исходящей почты:
FROM_MAIL— адрес отправителя;REPLY_TO_MAIL— адрес для ответных писем;FAKE_EMAIL_DOMAIN_LIST— дополнительные фейковые домены для проверки email-адресов.
storage.php
Файл www/config/storage.php управляет локальным хранилищем файлов и Redis-сервером:
STORAGE_ROOT_PATH— базовый путь, например/storage;STORAGE_DIR_PERMISSIONS— права доступа для новых директорий, например0755;STORAGE_FILE_PERMISSIONS— права доступа для новых файлов, например0644;-
BOOTSTRAP_REDIS_AUTOCONNECT— включать ли автоподключение к Redis-серверу в bootstrap; REDIS_SCHEME— схема подключения Redis-сервера, напримерtcp;REDIS_HOST— хост Redis-сервера, например127.0.0.1;REDIS_PORT— порт Redis-сервера, например6379.
Для отдельного CLI-скрипта или воркера итоговый флаг автоподключения к Redis-серверу можно переопределить служебной
PHP-константой BOOTSTRAP_OVERRIDE_REDIS_AUTOCONNECT до подключения файла
www/medusa/index.php. Если такая константа определена, она имеет приоритет над параметром конфигурации
BOOTSTRAP_REDIS_AUTOCONNECT.
queue.php
Файл www/config/queue.php задаёт параметры подключения к RabbitMQ-серверу:
-
BOOTSTRAP_RMQ_AUTOCONNECT— включать ли автоподключение к RabbitMQ-серверу в bootstrap; RMQ_HOST— хост RabbitMQ-сервера, например127.0.0.1;RMQ_PORT— порт RabbitMQ-сервера, например5672;RMQ_USER— имя пользователя RabbitMQ-сервера, напримерguest;RMQ_PASS— пароль пользователя RabbitMQ-сервера, напримерguest;RMQ_VHOST— виртуальный хост RabbitMQ-сервера, например/.
Для отдельного CLI-скрипта или воркера итоговый флаг автоподключения к RabbitMQ-серверу можно переопределить служебной
PHP-константой BOOTSTRAP_OVERRIDE_RMQ_AUTOCONNECT до подключения файла www/medusa/index.php.
Если такая константа определена, она имеет приоритет над параметром конфигурации
BOOTSTRAP_RMQ_AUTOCONNECT.
Frontend и Vite
Параметры фронтенд-слоя задаются в файле www/config/frontend.json. Этот файл используется
www/vite.config.js и bootstrap-инициализацией классов Medusa\Frontend\*.
{
"src": [
{
"path": "/frontend",
"entry": "entry.js"
}
],
"out": {
"path": "/build"
},
"vite": {
"alias": {
"@shared": "/frontend/_shared"
}
}
}
-
src[].path— список каталогов frontend-исходников относительноwww/; -
src[].entry— имя entry-файла для поиска Vite-сборкой внутри указанного source-каталога; если параметр не задан, используется по умолчаниюentry.js; -
out.path— каталог сборки и публикации ассетов относительноwww/; -
vite.alias— карта Vite-алиасов и путей относительноwww/.
Файл .env
В Docker-проекте используется шаблон .env.example. Обычно его копируют в корневой файл .env,
после чего значения из конфигурационных файлов можно переопределить:
ENV_FILE = ./.env
APP_URL = http://localhost:8001
APP_SET_UTC_TIME_ZONE = true
BOOTSTRAP_PDO_AUTOCONNECT = true
PDO_TYPE = mysql
PDO_PORT = 3306
PDO_NAME = app
PDO_CHARSET = utf8mb4
PDO_USER = medusa
PDO_PASSWORD = medusa
DB_WAIT_TIMEOUT = 300
DB_SET_UTC_TIME_ZONE = true
FROM_MAIL = app@mail.ru
REPLY_TO_MAIL = noreply@mail.ru
STORAGE_ROOT_PATH = /storage
STORAGE_DIR_PERMISSIONS = 0755
STORAGE_FILE_PERMISSIONS = 0644
BOOTSTRAP_REDIS_AUTOCONNECT = true
REDIS_SCHEME = tcp
REDIS_PORT = 6379
BOOTSTRAP_RMQ_AUTOCONNECT = true
RMQ_PORT = 5672
RMQ_USER = guest
RMQ_PASS = guest