Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Настройки и окружения

Настройки 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.distconfig/development.config.phpВыключает кеш настроек
config/autoload/development.local.php.distconfig/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 заготовки, и на каждом компьютере его создают заново.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.