Константы в Кохане - PullRequest
       13

Константы в Кохане

2 голосов
/ 03 февраля 2011

Я использовал codeigniter в прошлом, но в моем текущем проекте я переключаюсь на Kohana. Какова лучшая практика для констант?

В codeigniter есть настоящий constants.php, но, просматривая исходный код Kohana, я не вижу ничего похожего.

Ответы [ 3 ]

2 голосов
/ 03 февраля 2011

Никогда не использовал kohana, но после быстрого поиска в Google я обнаружил, что вы можете использовать config API для создания вашей собственной конфигурации, в которой будут храниться нужные вам константы.

ThisПоток предлагает, чтобы при хранении чувствительных к базе данных элементов их помещали в конфигурацию database.php и т. д., сопоставляя их с типом хранимых данных.

1 голос
/ 08 апреля 2011

Я знаком с Kohana, но не настолько, как CI, поэтому я немного догадываюсь о том, что вы подразумеваете под «константами».Я полагаю, что самым близким к этому действительно является API конфигурации Kohana.Так что, если вы хотите, чтобы шаблоны знали о какой-то постоянной для всего сайта, например, имени вашего сайта, было бы здорово использовать API конфигурации для.

Для этого вам необходимо создать файл конфигурациив вашей папке / config, вероятно, в каталоге / application.То, что вы называете, не очень важно, но так как оно содержит информацию о сайте, давайте назовем это site.php.

Чтобы быстро начать работу, вот что вы захотите иметь в этом файле:

<?php defined('SYSPATH') or die('No direct script access.');

return array(
    // Your site name!
    'name' => 'Oh me, Oh my',
);

Теперь вы можете внести это в шаблон, выполнив что-то вроде:

Лучшим способом сделать это (используя тупые шаблоны) было бы назначить это как переменную шаблона в вашемконтроллер.Итак, если у вас установлен контроллер по умолчанию, код будет выглядеть следующим образом:

public function action_index() {

    $this->template->site_name = Kohana::config('site.name');

}

И тогда ваш шаблон будет выглядеть примерно так:

<title><?php echo $site_name; ?></title>

API конфигурации Kohana интересен тем, чтоон иерархический, то есть вы можете переопределять и объединять новые значения конфигурации поверх существующих структур конфигурации.Когда вы вызываете Kohana::config('site.name'), механизм просматривает все файлы конфигурации с именем site.php, запускает все эти файлы конфигурации и объединяет результаты в массив.Файлы конфигурации уровня приложения будут перезаписывать модули, которые перезаписывают систему и т. Д. Затем, на основе этого массива результатов, Kohana попытается найти ключ 'name' и вернуть его.

0 голосов
/ 21 августа 2014

Предполагая, что вы хотите глобальные константы ... для меня это сработало:

application / config / constants.php:

define('MY_COOL_CONSTANT', 'foo');
return array();

index.php:

Kohana::$config->load('constants');

MY_COOL_CONSTANT должен быть доступен глобально.

...