Правильный способ использования файла конфигурации? - PullRequest
1 голос
/ 12 апреля 2010

Я только начал использовать PHP-фреймворк Kohana (V2.3.4) и пытаюсь настроить файл конфигурации для каждого из моих контроллеров.

Я никогда раньше не использовал фреймворк, поэтому очевидно, что Kohana для меня нова. Мне было интересно, как я должен настроить свои контроллеры для чтения моего файла конфигурации.

Например, у меня есть контроллер статьи и файл конфигурации для этого контроллера. У меня есть 3 способа загрузки настроек конфигурации

// config/article.php
$config = array(
    'display_limit'         => 25, // limit of articles to list
    'comment_display_limit' => 20, // limit of comments to list for each article
    // other things
);

Должен ли я

А) Загрузить все в массив настроек

// set a config array
class article_controller extends controller{

    public $config = array();

    function __construct(){
        $this->config = Kohana::config('article');
    }       
}

B) Загрузить и установить каждый параметр как его собственное свойство

// set each config as a property
class article_controller extends controller{

    public $display_limit;
    public $comment_display_limit;

    function __construct(){
        $config = Kohana::config('article');

        foreach ($config as $key => $value){
            $this->$key = $value;
        }
    }
}

C) Загружать каждую настройку только при необходимости

// load config settings only when needed
class article_controller extends controller{

    function __construct(){}

    // list all articles
    function show_all(){
        $display_limit = Kohana::config('article.display_limit');
    }

    // list article, with all comments
    function show($id = 0){
        $comment_display)limit = Kohana::config('article.comment_display_limit');
    }
}

Примечание: Kohana :: config () возвращает массив элементов.

Спасибо

Ответы [ 3 ]

0 голосов
/ 19 апреля 2010

Если вы читаете группу элементов конфигурации для контроллера, сохраните их в элементе класса ($this->config), если вы читаете один элемент конфигурации; прочитайте это индивидуально.

0 голосов
/ 13 августа 2010

Если у вас есть материалы для всего сайта, к которым вы хотите получить доступ из любого места, другой способ сделать это может быть что-то вроде:

Kohana::$config->attach(new Kohana_Config_File('global'));

в bootstrap.php.Затем создайте global.php в каталоге application / config с чем-то вроде:

return (array ('MyFirstVar' => 'Is One',
               'MySecondVar' => 'Is Two'));

И затем, когда вам это нужно из вашего кода:

Kohana::config ('global.MyFirstVar');

Но я полагаю, все это приходитвниз, где и как вы хотите его использовать.

0 голосов
/ 12 апреля 2010

Я думаю, что первый метод (A) должен быть в порядке, он имеет меньший код и отлично подходит для этой цели.

...