Настройки и окружения
Настройки Laminas — это PHP-файлы, каждый из которых возвращает массив. При запуске фреймворк собирает их в один большой массив. Окружение — это место, где работает сайт: ваш компьютер или рабочий сервер. У разных окружений разные пароли и разное отношение к ошибкам, поэтому настройки разделены на несколько файлов.
Откуда берутся настройки
| Файл | Что в нём | Попадает в Git |
|---|---|---|
module/*/config/module.config.php | Настройки одного модуля | Да |
config/autoload/global.php | Общие настройки проекта | Да |
config/autoload/local.php | Пароли и ключи этого компьютера | Нет |
Файлы сливаются в таком порядке: сначала модули по списку из config/modules.config.php, затем global.php, затем local.php. Если один и тот же ключ встречается дважды, побеждает файл, прочитанный позже.
Общие и локальные настройки
Добавьте в config/autoload/global.php свой раздел:
// config/autoload/global.php
return [
'blog' => [
'title' => 'Мой блог',
'posts_per_page' => 10,
],
];Имя раздела blog придумано нами: в массив настроек можно класть любые свои ключи.
Файл local.php создайте вручную рядом (в заготовке есть образец local.php.dist). В нём переопределяют только то, что отличается на этом компьютере:
// config/autoload/local.php
return [
'blog' => [
'posts_per_page' => 3,
],
];После слияния title останется «Мой блог», а posts_per_page станет равен 3.
Как прочитать настройки
Весь массив лежит в контейнере сервисов под именем config. Контейнер передаётся в фабрики — классы, создающие объекты; о них рассказывает урок о диспетчере сервисов. Внутри фабрики настройку читают так:
$config = $container->get('config');
$perPage = $config['blog']['posts_per_page'];В переменной $perPage окажется число 3.
Режим разработки
Команда composer development-enable копирует два файла-образца:
| Образец | Копия | Что меняет |
|---|---|---|
config/development.config.php.dist | config/development.config.php | Выключает кеш настроек |
config/autoload/development.local.php.dist | config/autoload/development.local.php | Показывает текст ошибок на странице |
Команда composer development-disable удаляет копии, и сайт возвращается в рабочий режим.
Свои файлы настроек
В папке config/autoload можно создавать и другие файлы. Laminas читает все, чьи имена заканчиваются на global.php или local.php, например db.global.php и db.local.php. Так удобно держать настройки каждой темы отдельно.
Частая ошибка
Пароль от базы, записанный в global.php, попадёт в репозиторий и станет виден всем, у кого есть доступ к коду. Пароли и ключи пишите только в local.php: этот файл уже перечислен в .gitignore заготовки, и на каждом компьютере его создают заново.