Конфигурационные файлы используются для хранения любой конфигурации модуля, класса или чего-либо другого. Это просто PHP-файлы, хранящиеся в каталоге config/, которые возвращают ассоциативный массив.
<?php defined('SYSPATH') or die('No direct script access.'); return array( 'setting' => 'value', 'options' => array( 'foo' => 'bar', ), );
Если приведенный выше конфигурационный файл называется myconf.php, то можно получить к нему доступ с помощью:
$config = Kohana::$config->load('myconf'); $options = $config->get('options')
Объединение
Конфигурационные файлы немного отличаются от большинства других файлов в каскадной файловой системе тем, что они объединяются, а не перегружаются. Это означает, что все конфигурационные файлы с один и тем же путем к файлу объединяются для создания окончательной конфигурации. Конечным результатом может явиться перегрузка отдельных параметров, но не дублирования всего файла.
Например, при изменении или добавлении записи в файл конфигурации inflector, нет необходимости дублировать все остальные записи из файла конфигурации по умолчанию.
// config/inflector.php <?php defined('SYSPATH') or die('No direct script access.'); return array( 'irregular' => array( 'die' => 'dice', // does not exist in default config file 'mouse' => 'mouses', // overrides 'mouse' => 'mice' in the default config file );
Создание собственных конфигурационных файлов
Необходим конфигурационный файл для хранения и легкого изменения таких параметров, как название веб-сайта или кода Google Analytics. Создаем конфигурационный файл и называем его site.php:
// config/site.php <?php defined('SYSPATH') or die('No direct script access.'); return array( 'title' => 'Our Shiny Website', 'analytics' => FALSE, // analytics code goes here, set to FALSE to disable );
Вызвав Kohana::$config->load(‘site.title’) получим название сайта, а вызвав Kohana::$config->load(‘site.analytics’) получим Google Analytics код.
Необходим архив версий некоторых программ. Можно использовать файлы конфигурации для хранения каждой версии, а также включить ссылки на скачивание, документацию и отслеживание ошибок.
// config/versions.php <?php defined('SYSPATH') or die('No direct script access.'); return array( '1.0.0' => array( 'codename' => 'Frog', 'download' => 'files/ourapp-1.0.0.tar.gz', 'documentation' => 'docs/1.0.0', 'released' => '06/05/2009', 'issues' => 'link/to/bug/tracker', ), '1.1.0' => array( 'codename' => 'Lizard', 'download' => 'files/ourapp-1.1.0.tar.gz', 'documentation' => 'docs/1.1.0', 'released' => '10/15/2009', 'issues' => 'link/to/bug/tracker', ), /// ... etc ... );
Затем можно сделать следующее:
// В контроллере $view->versions = Kohana::$config->load('versions'); // В представлении foreach ($versions as $version) { // вывод какого-то html-кода для отображения каждой версии }
Пожалуйста, зарегистрируйтесь для комментирования.
а можно ли устанавливать через метод а не ручками значение опции конфига?
Тоже интересен этот вопрос.
Да, было бы удобно ключевые слова или заголовки в конфигах хранить и при надобности править
Можно, но нужно перенести конфиги в бд.
Для записи в файл прийдется самостоятельно расширять класс Config_File_Writer