Конфигурационные файлы

Комментарии: 4  Просмотры: 6 003

Конфигурационные файлы используются для хранения любой конфигурации модуля, класса или чего-либо другого. Это просто 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-кода для отображения каждой версии
}

Обсудить на форуме


К записи оставлено 4 коммент.

а можно ли устанавливать через метод а не ручками значение опции конфига?

Тоже интересен этот вопрос.

Да, было бы удобно ключевые слова или заголовки в конфигах хранить и при надобности править

Можно, но нужно перенести конфиги в бд.
Для записи в файл прийдется самостоятельно расширять класс Config_File_Writer



Оставить комментарий или два

Пожалуйста, зарегистрируйтесь для комментирования.