Вот уж не думал, что буду использовать свои конфиги!! А начиналось вроде бы всё просто.
Ведь всегда у сайта есть некие величины, которые не меняются. Ну, например, “Главное название сайта”. Оно практически всегда присутствует в титуле любой страницы, в футере, в меню, в заголовках и т.д.
Или тогда другой пример – какое-нибудь количество записей на какой-нибудь странице результатов поиска. Ну правда же, да забейте вы это число (строку или ещё чего) прямо в контроллер или в шаблон. Казалось бы…
Но что если вам пришлось поменять этот параметр? Нужно вспомнить место в коде, где эта величина была введена.
А что если эта величина используется в коде несколько раз? Иногда у разработчика хватает ума объявить переменную, которую один раз задать и сто раз использовать. Это может немного облегчить наши мучения.
А что если вам пришлось тиражировать свою разработку на кучу сайтов? Нужно срочно бегом менять толпу величин, прописанных в разных местах и по-разному!
Самый правильный выход в такой ситуации – вывести такие величины в конфиг и использовать как опциональные настройки.
Использовать свои конфиги в Kohana3 очень просто. Для этого создадим файл в папке config/
В нём опишем массив своих опций/величин:
К примеру назовём файл myconf.php
1 2 3 4 5 6 7 8 9 | <?php return array( 'site_title' => 'Мой любимый сайт', 'option1' => 'qweqwe', 'option2' => 'blablabla', 'options_array' => array( 'opt1' => 'xcvxcvxcv', ), ); |
Обратите внимание, что опция сама может быть массивом
А дальше дело техники. Подключаем файл опций и используем опции.
1 2 | $myconfig = Kohana::config('myconf'); $title = $myconfig['site_title']; |
В этом примере мы вытащили настройку за две строчки кода. А можно было сделать одной строчкой
1 | $title = Kohana::config('myconf.site_title'); |
Или так
1 | $opt1 = Kohana::config('myconf.options_array.opt1'); |
Всё довольно просто.
Всё тут описанное вольный пересказ/перевод статьи из мануала, сделанный чтобы самому не забыть и может даже кому помочь.
=)
Посты по теме:
RSS-подписка
Очень полезно я делал все настройки в before но так намного правельнее.
Отлично, спасибо!
А как поступить, если данные конфигов находятся в БД? Например то же название или телефон, если они меняются через админку. Как их пихать в конфиг, чтобы они были доступны на каждой странице?