JohnCMS
Search…
Конфигурационные файлы (configs)
Наверное Вы уже задавались вопросом "Где хранятся настройки JohnCMS и как добавлять свои настройки?". Давайте рассмотрим подробнее.
Ранее когда мы рассматривали структуру папок, мы уже упоминали в ней папку config. Теперь рассмотрим, что и за что отвечает...
Когда мы открываем папку config, то видим в ней примерно такую структуру:
Список конфигурационных файлов в JohnCMS
Файлов достаточно много, давайте разберёмся за что они отвечают.

Файлы в директории autoload:

Директория autoload содержит все конфигурационные файлы, которые автоматически загружаются системой. Как вы наверное заметили есть файлы содержащие в названии global и local. Файлы global это обычно файлы, которые могут обновляться при выходе новых версий JohnCMS. Не рекомендуем их редактировать, т.к. это осложнит обновление CMS.
Файлы local - это локальные файлы конкретно для вашего сайта. Они не содержаться в дистрибутиве JohnCMS. Некоторые из них создаются автоматически при установке системы, а некоторые вы можете создавать вручную.

Как же быть если вы хотите изменить какие-то параметры, которые есть в global файле?

Всё очень просто. Нужно создать файл с таким же названием, но заменить global на local.
Например, вы хотите изменить настройки в файле mail.global.php, для этого скопируйте этот файл и сохраните под именем mail.local.php. Далее измените в нем нужные параметры и они переопределят те параметры, которые уже содержатся в mail.global.php.
Обратите внимание. При необходимости Вы можете изменить только определенные параметры, а остальные останутся стандартными.
Давайте рассмотрим пример:

Содержимое mail.global.php

1
return [
2
'mail' => [
3
// Default transport (can be sendmail, smtp, file or memory)
4
'transport' => 'sendmail',
5
6
// Transport settings
7
'options' => [
8
'smtp' => [
9
'name' => 'localhost.localdomain',
10
'host' => '127.0.0.1',
11
'connection_class' => 'plain',
12
'connection_config' => [
13
'username' => 'user',
14
'password' => 'pass',
15
],
16
],
17
'file' => [
18
'path' => DATA_PATH . 'mail/',
19
'callback' => static function (FileTransport $transport) {
20
return 'Message_' . microtime(true) . '_' . mt_rand() . '.txt';
21
},
22
],
23
],
24
],
25
];
Copied!
Допустим нам нужно изменить имя пользователя: username. Это можно сделать так:

Содержимое файла mail.local.php

1
return [
2
'mail' => [
3
// Transport settings
4
'options' => [
5
'smtp' => [
6
'connection_config' => [
7
'username' => 'my_user',
8
],
9
],
10
],
11
],
12
];
Copied!
Давайте теперь получим итоговый результат.
Содержимое всех конфигурационных файлов можно получить следующим образом: $config = di('config'); Это вернет содержимое всех конфигурационных файлов из папки config/autoload.
Чтобы получить содержимое файла mail, выполним следующий код:
1
d($config['mail']);
Copied!
Это вернет следующий результат:
1
Array
2
(
3
[transport] => sendmail
4
[options] => Array
5
(
6
[smtp] => Array
7
(
8
[name] => localhost.localdomain
9
[host] => 127.0.0.1
10
[connection_class] => plain
11
[connection_config] => Array
12
(
13
[username] => my_user
14
[password] => pass
15
)
16
)
17
[file] => Array
18
(
19
[path] => /Users/maksim/MyProjects/johncms_public/data/mail/
20
[callback] => Closure Object
21
(
22
[parameter] => Array
23
(
24
[$transport] =>
25
)
26
)
27
)
28
)
29
)
Copied!
Как видите, в итоговом результате username переопределился тем, что мы указали в файле mail.local.php
Вы можете самостоятельно поэкспериментировать, создать свой конфигурационный файл (global/local), а так же можете переопределить настройки из других файлов.
Для удобства можете создать файл test.php в корне вашего сайта со следующим содержимым:
1
<?php
2
3
require 'system/bootstrap.php';
4
$config = di('config');
5
6
// Выведем содержимое конфига mail
7
d($config['mail']);
Copied!
После этого в браузере перейдите по адресу site.com/test.php и увидите результат. (site.com необходимо заменить на адрес вашего сайта).
Обратите внимание. Хоть технически вы можете создавать конфигурационные файлы любой структуры и с любыми именами содержащими local.php или global.php, мы бы рекомендовали создавать осмысленные названия и первый элемент массива называть так же как и сам конфигурационный файл чтобы избежать путаницы и пересечения параметров. Например файл my.global.php, должен возвращать следующую структуру: return [ 'my' => [ 'name' => 'value' ], ];
Autoload рассмотрели, теперь кратко рассмотрим остальные файлы.

Прочие конфигурационные файлы:

constants.php - Файл содержит различные константы. В нем вам скорее всего понадобятся константы USE_CRON (для перевода отправки email на cron) и DEBUG для включения режима отладки при возникновении ошибок или при разработке модулей.
notifications.global.php - Этот файл содержит шаблоны уведомлений. Параметры в данном файле можно переопределить или дополнить с помощью файла notifications.local.php
places.global.php - Файл содержит информацию о местоположении пользователей. Параметры в данном файле можно переопределить или дополнить с помощью файла places.local.php
routes.php - файл для настройки маршрутизации. Подробно работу с ним мы рассматривали в этой статье: Маршрутизация (роутинг)
Last modified 8mo ago