5.8 KiB
Основы
Kohana использует для конфигурации как статические свойства, так и файлы. Статические свойства обычно применяются для статических классов, таких как [Cookie], [Security], и [Upload]. Файлы используются для объектов типа [Database], [Encrypt], и [Session].
Статические свойства могут быть установлены в APPPATH/bootstrap.php
или с помощью расширения классов. Преимущество статических свойств в том, что не требуется загрузки дополнительных файлов. Недостаток в том, что инициируется загрузка класса, когда свойство устанавливается (если Вы не используете для этого расширения). С другой стороны, использование расширений переопределит возможные расширения из других модулей. Так что рекомендуется выносить установку статических свойств в bootstrap.
[!!] При использовании opcode-кэширования, например APC или eAccelerator, время загрузки класса значительно уменьшается. Настойчиво рекомендуем использовать opcode-кэширование на любом работающем сайте, независимо от размера.
Параметры инициализации
Для каждой новой установки Kohana потребуется изменить настройки [Kohana::init] в APPPATH/bootstrap.php
. Все опущенные настройки будут использовать дефолтные значения. Настройки могут быть получены и изменены позже, с помощью статических свойств класса [Kohana]. К примеру, для получения текущей кодировки, обратитесь к свойству [Kohana::$charset].
Настройки безопасности
Существует несколько параметров, которые необходимо поменять, чтобы сделать Kohana более защищенной. Самый важный из них - [Cookie::$salt], который используется для "подписывания" куков, что защищает их от подмены вне Kohana.
Если Вы планируете использовать класс [Encrypt], Вам также понадобится создать файл конфигурации encrypt
и установить значение ключа
шифрования. Шифровальный ключ должен включать буквы, цифры и знаки для повышения безопасности.
[!!] Не используйте хэш для ключа шифрования! Поступая таким образом, Вы облегчаете его взлом.
Файлы конфигурации
Файлы конфигурации несколько отличаются от прочих файлов каскадной файловой системы тем, что они сливаются вместо того, чтобы переопределяться. Это означает, что все конфигурационные файлы с одинаковым путем будут объединены для получения итоговой конфигурации. Как результат, Вы можете перезаписать отдельные параметры вместо того, чтобы дублровать все содержимое файла.
Файлы конфигурации являются обычными PHP-файлами, хранимыми в директории config/
, они должны возвращать ассоциативный массив:
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'setting' => 'value',
'options' => array(
'foo' => 'bar',
),
);
В данном примере файл называется myconf.php
, и Вы можете получить доступ к нему так:
$config = Kohana::config('myconf');
$options = $config['options'];
[Kohana::config] также предоставляет быстрый доступ к отдельным ключам массива конфигурации, используя "точечные пути".
Получим доступ к массиву "options":
$options = Kohana::config('myconf.options');
А так извлечем ключ "foo" из массива "options":
$foo = Kohana::config('myconf.options.foo');
Также массивы могут выступать в качестве объектов, если Вам так больше нравится:
$options = Kohana::config('myconf')->options;
Пожалуйста, обратите внимание, что Вы можете получить доступ только к корневым ключам через свойства объекта, все дочерние ключи доступны через стандартный синтаксис работы с массивами:
$foo = Kohana::config('myconf')->options['foo'];