Я знаком с 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' и вернуть его.