59 lines
5.8 KiB
Markdown
59 lines
5.8 KiB
Markdown
|
# Основы
|
|||
|
|
|||
|
Kohana использует для конфигурации как статические свойства, так и файлы. Статические свойства обычно применяются для статических классов, таких как [Cookie], [Security], и [Upload]. Файлы используются для объектов типа [Database], [Encrypt], и [Session].
|
|||
|
|
|||
|
Статические свойства могут быть установлены в `APPPATH/bootstrap.php` или с помощью [расширения классов](using.autoloading#class-extension). Преимущество статических свойств в том, что не требуется загрузки дополнительных файлов. Недостаток в том, что инициируется загрузка класса, когда свойство устанавливается (если Вы не используете для этого расширения). С другой стороны, использование расширений переопределит возможные расширения из других модулей. Так что рекомендуется выносить установку статических свойств в bootstrap.
|
|||
|
|
|||
|
[!!] При использовании opcode-кэширования, например [APC](http://php.net/apc) или [eAccelerator](http://eaccelerator.net/), время загрузки класса значительно уменьшается. Настойчиво рекомендуем использовать opcode-кэширование на любом работающем сайте, независимо от размера.
|
|||
|
|
|||
|
## Параметры инициализации
|
|||
|
|
|||
|
Для каждой новой установки Kohana потребуется изменить настройки [Kohana::init] в `APPPATH/bootstrap.php`. Все опущенные настройки будут использовать дефолтные значения. Настройки могут быть получены и изменены позже, с помощью статических свойств класса [Kohana]. К примеру, для получения текущей кодировки, обратитесь к свойству [Kohana::$charset].
|
|||
|
|
|||
|
## Настройки безопасности
|
|||
|
|
|||
|
Существует несколько параметров, которые необходимо поменять, чтобы сделать Kohana более защищенной. Самый важный из них - [Cookie::$salt], который используется для "подписывания" куков, что защищает их от подмены вне Kohana.
|
|||
|
|
|||
|
Если Вы планируете использовать класс [Encrypt], Вам также понадобится создать файл конфигурации `encrypt` и установить значение `ключа` шифрования. Шифровальный ключ должен включать буквы, цифры и знаки для повышения безопасности.
|
|||
|
|
|||
|
|
|||
|
[!!] **Не используйте хэш для ключа шифрования!** Поступая таким образом, Вы облегчаете его взлом.
|
|||
|
|
|||
|
# Файлы конфигурации {#config-files}
|
|||
|
|
|||
|
Файлы конфигурации несколько отличаются от прочих файлов [каскадной файловой системы](about.filesystem) тем, что они **сливаются** вместо того, чтобы переопределяться. Это означает, что все конфигурационные файлы с одинаковым путем будут объединены для получения итоговой конфигурации. Как результат, Вы можете перезаписать *отдельные* параметры вместо того, чтобы дублровать все содержимое файла.
|
|||
|
|
|||
|
Файлы конфигурации являются обычными 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'];
|