Перед использованием Кохану необходимо настроить. Небольшие настройки мы уже произвели, a сейчас рассмотрим другие не мало важные настройки. Для начала давайте пройдемся по файлу bootstrap.php, который находится в папке application. Первая настройка, которую мы сделаем в этом файле, касается временной зоны. Найдите следующие строчки:
/**
* Set the default time zone.
*
* @link http://kohanaframework.org/guide/using.configuration
* @link http://www.php.net/manual/timezones
*/
date_default_timezone_set('America/Chicago');
Кохана очень хорошо комментирована, однако английский не всех радует. И здесь, если перейти по второй ссылке в комментарии, можно увидеть полный список поддерживаемых временных зон. Если вы не из Америки, пропишите нужную, например, Europe/Moscow.
Следующее, что нам нужно, — это установка локали по умолчанию:
/** * Set the default locale. * * @link http://kohanaframework.org/guide/using.configuration * @link http://www.php.net/manual/function.setlocale */ setlocale(LC_ALL, 'en_US.utf-8');
По умолчанию можно выставить ru_RU.utf-8. Для дополнительной информацией по поводу локали, переходим по ссылкам в комментарии.
В принципе эти настройки можно и не трогать или настроить их позже. Иметь правильное время — это конечно хорошо, но крайне необходимо иметь рабочие URL — адреса, ведь без них посетители никогда не смогут посмотреть ваше приложение. Настроем так называемый ЧПУ (человеко-понятный УРЛ). Попробуйте ввести в адресной строке такой URL:
http://localhost/welcome/test и запустите. Сработало ? На самом деле и не должно было. Так как мы не настроили Кохану до конца. В принципе, если мы поменяем адрес на такой http://kohana/index.php/welcome/test, то все запустится. Но выглядит это мягко говоря странно. Убрать этот index.php в адресной строке очень просто. В файле bootstrap.php есть настройки, в которые мы должны добавить одну строчку ‘index_file’ => FALSE:
/**
* Initialize Kohana, setting the default options.
*
* The following options are available:
*
* - string base_url path, and optionally domain, of your application NULL
* - string index_file name of your index file, usually "index.php" index.php
* - string charset internal character set used for input and output utf-8
* - string cache_dir set the internal cache directory APPPATH/cache
* - integer cache_life lifetime, in seconds, of items cached 60
* - boolean errors enable or disable error handling TRUE
* - boolean profile enable or disable internal profiling TRUE
* - boolean caching enable or disable internal caching FALSE
* - boolean expose set the X-Powered-By header FALSE
*/
Kohana::init(array(
'base_url' => '/',
'index_file' => FALSE
));
Больше здесь трогать пока ничего не нужно, разве что можно изменить параметр base_url (базовый URL), но это только в том случае, если у вас сайт находится в под папке. В этом случае нужно также поменять значение RewriteBase в файле .htaccess.
Переходим к настройкам окружения:
/**
* Set Kohana::$environment if a 'KOHANA_ENV' environment variable has been supplied.
*
* Note: If you supply an invalid environment name, a PHP warning will be thrown
* saying "Couldn't find constant Kohana::<INVALID_ENV_NAME>"
*/
if (isset($_SERVER['KOHANA_ENV']))
{
Kohana::$environment = constant('Kohana::'.strtoupper($_SERVER['KOHANA_ENV']));
}
Очень часто во время разработки приложения нам нужны определенные функции, которые нежелательны, когда проект выложен в сеть. Например вывод какой-то информации или сообщений об ошибках. В Кохане можно быстро переключаться между режимами разработки, в зависимости от окружения. Добавьте перед условием строку
Kohana::$environment = Kohana::DEVELOPMENT;
Таким образом мы перевели Кохану в режим разработки. С фреймворком идут следующие четыре константы: PRODUCTION, STAGING, TESTING и DEVELOPMENT. Т.е. готовый проект, подготовка, тестирование и разработка. Мы выбрали DEVELOPMENT, поскольку только начинаем разработку. Перед установкой готового проекта на рабочий сервер, не забудьте поменять значение на PRODUCTION
Последнее, что мы должны сделать в файле bootstrap.php — это включить нужные модули. Для этого существует метод Kohana::modules, в который передается массив, где ключами являются названия модулей, а значениями — расположение самих файлов. Нам нужно просто раскомментировать те модули, которые мы будем использовать:
/**
* Enable modules. Modules are referenced by a relative or absolute path.
*/
Kohana::modules(array(
// 'auth' => MODPATH.'auth', // Basic authentication
// 'cache' => MODPATH.'cache', // Caching with multiple backends
// 'codebench' => MODPATH.'codebench', // Benchmarking tool
// 'database' => MODPATH.'database', // Database access
// 'image' => MODPATH.'image', // Image manipulation
// 'minion' => MODPATH.'minion', // CLI Tasks
// 'orm' => MODPATH.'orm', // Object Relationship Mapping
// 'unittest' => MODPATH.'unittest', // Unit testing
// 'userguide' => MODPATH.'userguide', // User guide and API documentation
));
Можно сделать это сейчас, если вы уже знаете, что вам понадобится, но лучше делать это в процессе разработки. Сюда же можно добавлять новые модули, например те, которые будут выкладываться у нас в разделе Модули или написанные самостоятельно. Пока здесь находятся все модули, которые идут в комплекте с Коханой и лежат в папке modules. Большая часть модулей требует определенной настройки. Все нужные модули и их настройки обязательно будут рассмотрены в процессе обучения. Пока можете раскомментировать последнюю строчку, в следующем разделе я расскажу зачем.
Конфигурационный файл
Когда вы создаете свое приложение, устанавливаете или создаете какие-то модули, у вас появляются какие-то данные, которые могут меняться. И вам естественно хочется хранить их где-то в одном месте и иметь возможность легко получать к ним доступ.
В папке application есть папка config. В этой папке вы можете создавать свои конфигурационные файлы и потом обращаться к ним. Давайте рассмотрим пример. Создайте в папке /application/config/файл с названием mysite.php и добавьте в него следующий код:
<?php defined('SYSPATH') or die('No direct script access');
return array(
'title' => 'Мой первый сайт на Кохане',
'description' => 'Самый лучший сайт на свете'
);
Первая строчка — защита от прямого доступа к скрипту, хакеры теперь здесь не пройдут. Остальное — возврат массива с нашими данными. Теперь, чтобы получить доступ к этим данным, нужно использовать следующий код:
$site_config = Kohana::$config->load('mysite');
Будет произведен поиск файла с названием mysite.php в папке /application/config/ и если все в порядке, такой файл есть и в нем нет ошибок, то будет создан объект $site_config. Ну а чтобы получить сами настройки, используем метод get. Полностью код будет выглядеть так:
$site_config = Kohana::$config->load('mysite');
$title = $site_config->get('title');
$description = $site_config->get('description');
Можно вообще обойтись одной строчкой
$title = Kohana::$config->load('mysite.title');
Также можно использовать многомерные массивы:
<?php defined('SYSPATH') or die('No direct script access');
return array(
'title' => 'Мой первый сайт на Кохане',
'description' => array(
'main' => 'Самый лучший сайт на свете',
'alt' => 'Пока не будет создан второй сайт'
)
);
И получать значения следующим образом:
$description_main = Kohana::$config->load('mysite.description.main');
$description_alt = Kohana::$config->load('mysite.description.alt');
Таким образом видно, что вариантов работы с файлом конфигурации масса. Выбирайте такой, какой вам больше нравится.
.
Frameworks.su Шпаргалка вебмастера