Laravel 8. Быстрая разработка веб-сайтов на PHP [Владимир Александрович Дронов] (pdf) читать постранично, страница - 37

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

'write.data.local',
'port' => '6603',
'username' => 'w_bboard',
'password' => '987654321',
],
'database' => 'bboard',
. . .
],

],

Если параметру sticky дать значение true, после записи данных через подключение
«для записи» чтение также будет выполнено через это же подключение. Это может
повысить производительность (разумеется, если пользователь, соединившийся
через это подключение, имеет привилегии на чтение данных):
'connections' => [
'mysql' => [
. . .
'read' => [ . . . ],
'write' => [ . . . ],
. . .
'sticky' => true,
],
],

Если через подключение «для записи» невозможно чтение данных, параметру
sticky следует дать значение false или вообще удалить его.
ПОЛЕЗНО ЗНАТЬ
Laravel позволяет использовать несколько баз данных, просто записав их в настройках
проекта. Во фреймворке Django, напротив, для этого требуется дополнительное программирование.

3.4.3. Доступ к настройкам из программного кода
Для извлечения значения рабочей настройки с указанным путем применяется функция config():
config([, =null])
Путь записывается

в формате:

.

Если настройка с заданным путем отсутствует, возвращается значение по умолчанию.
Примеры:
// Получаем значение настройки name из модуля config\app.php
$project_name = config('app.name');

Глава 3. Создание, настройка и отладка проекта

95

// Получаем значение настройки connections.sqlite.database
// из модуля config\database.php
$sqlite_database_path = config('database.connections.sqlite.database');

Для программного указания новых значений настроек применяется та же функция
config(), но в другом формате вызова:
config()

Ключ элемента заданного массива укажет путь к нужной настройке, а значение элемента станет новым значением этой настройки. Пример:
// Задаем новое название сайта
config(['app.name' => 'ДО: Доска объявлений']);

Выяснить, в каком режиме работает сайт, позволит метод environment() фасада
Illuminate\Support\Facades\App (управляющего подсистемой, представляющей
сайт как таковой), который поддерживает четыре формата вызова:
 environment() (без параметров) — возвращает строку с наименованием режима

работы:
Сайт работает в режиме: {{ App::environment() }}

 environment() — возвращает true, если сайт работает в заданном режиме,

и false — в противном случае:
@if (App::environment('local'))
Сайт работает в режиме local
@endif

 environment(, . . . ) — возвращает true, если

сайт работает в одном из указанных режимов, и false — в противном случае:
@if (App::environment('local', 'testing', 'staging'))
Сайт работает в одном из тестовых режимов
@endif

 environment() — то же самое, что и предыдущий формат

вызова:
@if (App::environment(['local', 'testing', 'staging']))
Сайт работает в одном из тестовых режимов
@endif

3.4.4. Создание своих настроек
Ничто не мешает нам создать свои рабочие настройки, добавив их в один из модулей, хранящихся в папке config. Например, так можно создать в модуле config\app.php
настройку description, содержащую описание сайта:
return [
. . .
'description' => 'Электронная доска объявлений',
];

96

Часть II. Базовые инструменты

А потом — извлечь значение этой настройки:
{{ config('app.description') }}

Созданная таким образом основная настройка может брать значение из локальных
настроек (файла .env):
// Файл .env
APP_DESC="Электронная доска объявлений"
// Модуль config\app.php
return [
. . .
'description' => env('APP_DESC'),
];

Также можно создать в папке config новый модуль, предназначенный для хранения
вновь добавленных настроек: