Не смотря на то, что большинство настроек в CakePHP уже предустановлены, бывает полезно иметь свой вариант конфигурации. Раньше, для того чтобы настроить Cake, необходимо было указать значения разных переменных в нескольких файлах. Разумеется, при каждом обращении приходилось все эти файлы загружать.
Новый класс Configure может использоваться для хранения любых значений. Будьте острожны — этот класс может хранить что угодно и давать доступ к этим данным из любой части приложения — прекрасное искушение к тому чтобы разорвать шаблон MVC. Основная цель этого класса, все же, хранить ту информацию, которая должна быть доступна максимальному количеству файлов вашего приложения.
Этот класс действует как одиночка и его методы могут быть вызваны из любой точки вашего приложения.
<?php Configure::read('debug'); ?>
Используйте write() чтобы сохранить данные в конфигурации приложения.
<?php
Configure::write('Company.name','Pizza, Inc.');
Configure::write('Company.slogan','Пицца для вашего тела и души');
?>
Примечание: используйте точку в параметре $key. Это поможет вам разграничить конфигурацию на логические группы.
Приведенный выше пример может быть так же записан при помощи одного вызова.
<?php
Configure::write(
'Company',array('name'=>'Pizza, Inc.','slogan'=>'Пицца для вашего тела и души')
);
?>
Вы можете использовать Configure::write('debug', $int) для того чтобы переключаться между режимами отладки на лету. Особенно полезно это для AMF или SOAP, где отладочная информация может вызывать большие проблемы разбора содержимого.
Используйте метод read() для того чтобы читать конфигурационную информацию. По умолчанию CakePHP возвращает информацию об уровне отладки, если параметр не передан. Используя наши примеры выше для функции write(), мы можем получить наши данные обратно.
<?php
Configure::read('Company.name'); //вернет: 'Pizza, Inc.'
Configure::read('Company.slogan'); //вернет: 'Пицца для вашего тела и души'
Configure::read('Company');
//вернет:
array('name' => 'Pizza, Inc.', 'slogan' => 'Пицца для вашего тела и души');
?>
Используется для удаления информации из конфигурации.
<?php Configure::delete('Company.name'); ?>
Используйте этот метод для загрузки конфигурации из какого-либо внешнего файла.
/app/config/messages.php
<?php
$config['Company']['name'] = 'Pizza, Inc.';
$config['Company']['slogan'] = 'Pizza for your body and soul';
$config['Company']['phone'] = '555-55-55';
?>
/app/config/core.php
<?php
Configure::load('messages');
Configure::read('Company.name');
?>
Примечание: все переменные для загрузки в конфигурацию должны представлять из себя массив ключ-значение с названием $config. Все прочие переменные будут проигнорированы при использовании функции load().
Возвращает версию используемого ядра CakePHP.
Переменная конфигурации | Описание |
debug | Изменение режима вывода отладки. 0 = Режим готовой продукции. Вывода отладки нет. 1 = Вывод ошибок и предупреждений. 2 = Вывод ошибок, предупреждений и SQL запросов. 3 = Вывод ошибок, предупреждений, SQL запросов и дампа всех переменных, доступных в контроллере. |
App.baseUrl | Раскомментируйте определение этой переменной, если не планируете использовать Apache и mod_rewrite для вашего приложения на CakePHP. Не забудьте так же удалить .htaccess файлы. |
Routing.admin | Раскомментируйте эту директиву, если хотите использовать роутинг для администратора. В значении должно быть название первой части адреса администратора. Подробнее эта опция будет описана позже. |
Cache.disable | Когда эта переменная устанавливается в true — на всем сайте отключается кеширование. |
Cache.check | Если установить в true, то будет возможно работать с кешем. Активация в контроллерах по прежнему необходима, но эта переменная дает возможность в принципе обнаружить эти настройки. |
Session.save | Сообщает CakePHP каким образом должны храниться сессии. php = Использовать стандартный механизм php. cake = Сохранять сессии в /app/tmp. database = Сохранять сессии в таблице базы данных. Перед использованием такого способа вам надо выполнить в базе данных запрос, лежащий изначально в файле /app/config/sql/sessions.sql. |
Session.table | Название таблицы (префикс не используется) для хранения сессий. |
Session.database | Имя базы данных с таблицей для хранения сессий. |
Session.cookie | Название Cookie в которой будет храниться ключ сессии. |
Session.timeout | Число в секундах, на основе которого будет вычислено время жизни Cookie с ключом сессии. Фактическое время зависит от Security.level |
Session.start | Если установить в true, то сессия будет создаваться при входе каждого нового пользователя. |
Session.checkAgent | При false CakePHP не будет проверять неизменность браузера пользователя. |
Security.level | Уровень безопасности CakePHP. Время действия сессии, объявленное в Session.timeout умножается на это значение. Возможные значения: 'high' = x 10 'medium' = x 100 'low' = x 300 |
Security.salt | Произвольный набор символов. Используется для создания хешей. |
Acl.classname, Acl.database | Константы используются в функциях Списков Контроля Доступа (ACL). Смотрите главу с таким названием для выяснения подробностей. |
Примечание: настройки конфигурации кеша находятся в файле core.php. Мы поговорим об этом позже и опишем эти настройки.
Класс конфигурации используется для того чтобы считывать и записывать переменные на лету. Это может быть особенно удобно, если вы, например, хотите выводить отладочную информацию только для некоторых частей вашего приложения.
Константа | Описание |
COMPRESS_CSS | Если установить в true, то CSS файлы будут сжиматься при отдаче. Для этого необходимо чтобы директория /var/cache была доступна для записи на сервере. Для использования опции прописывайте путь к вашим CSS файлам как /ccss (вместо /css) или используйте Controller::cssTag(). |
LOG_ERROR | Константа ошибки. Используется для разделения типа записи в лог: сообщения об ошибках и отладочные сообщения. Сейчас PHP поддерживает LOG_DEBUG. |
<< Настройка базы данных | Настройка роутов (маршрутизаций) >>