Перед использованием Кохану необходимо настроить. Небольшие настройки мы уже произвели, они касались присутствия index.php в адресной строке. Для начала давайте пройдемся по файлу bootstrap.php, который находится в папке application. Первая настройка, которую мы сделаем в этом файле, касается временной зоны. Найдите следующие строчки:
/** * Set the default time zone. * * @see http://kohanaframework.org/guide/using.configuration * @see http://php.net/timezones */ date_default_timezone_set('America/Chicago');
Кохана очень хорошо комментирована (правда на английском и некоторых это очень расстраивает). И здесь, если перейти по второй ссылке в комментарии, можно увидеть полный список поддерживаемых временных зон. Если вы не из Америки, пропишите нужную, например, Europe/Moscow.
Следующее, что нам нужно, — это установка локали по умолчанию:
/** * Set the default locale. * * @see http://kohanaframework.org/guide/using.configuration * @see http://php.net/setlocale */ setlocale(LC_ALL, 'en_US.utf-8');
Опять же, за дополнительной информацией по поводу локали, переходим по ссылкам в комментарии.
В принципе эти настройки можно и не трогать или настроить их позже. Иметь правильное время — это конечно хорошо, но крайне необходимо иметь рабочие URL — адреса, ведь без них посетители никогда не смогут посмотреть ваше приложение. Поэтому пока пропускаем настройки вроде языка по умолчанию (тем более, что это пока ни на что особо не влияет) и переходим к очень важным настройкам — настройкам URL. Тем более, что мы их уже производили. Это уже знакомый нам статический метод инициализации — Kohana::init, который в качестве параметра принимает ассоциативный массив с парой ключ-значение. Если вы выполняли все мои рекомендации, то выглядеть он должен следующим образом:
/** * 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 * - boolean errors enable or disable error handling TRUE * - boolean profile enable or disable internal profiling TRUE * - boolean caching enable or disable internal caching 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.
<< Назад | Вперед >> |
Пожалуйста, зарегистрируйтесь для комментирования.
Не понятно где конкретно нужно добавить строку [code]Kohana::$environment = Kohana::DEVELOPMENT;[/code]
над
if (isset($_SERVER['KOHANA_ENV']))
прямо и пишите
Изменил все рекомендации по поводу удаления index.php все равно не работает
т.е. прописали в массиве ‘index_file’ => FALSE и переименовали example.htaccess в .htaccess и не работает ?
а что пишет ?
все понял что не так было, просто нужно было в htaccess править RewriteBase /kohana/ у меня просто в корне сервера кохана в папке лежит )
да и Вы бы перенесли вот это в раздел первые шаги а то некорректно как то получается
Ну а если у вас по другому, то исправьте это. Больше здесь трогать пока ничего не нужно, разве что можно изменить параметр base_url (базовый URL), но это только в том случае, если у вас сайт находится в подпапке. В этом случае нужно также поменять значение RewriteBase в файле .htaccess.
Просто обычно это никто не делает. Это здесь я запихнул тоже в
http://kohanaframework.su/kohana/
потому что основной урл занят.
Браво!
Всем привет. А никто не знает почему на странице не кириллица отображается ересью? Пробовал менять setlocale(LC_ALL, ‘en_US.utf-8′); на setlocale(LC_ALL, ‘ru_RU.utf-8′);, комментировать эту строку, посылать заголовок: header(‘Content-type:text/html;charset=utf-8′);Так же пробовал устанавливать windows-1251 для теста. Результат один и тот же. Русскоязычные символы на странице не отображаются.
Возможно сама страница сохранена не в утф8
Вопрос исчерпан, просто у меня в PHP Designer по умолчанию текст писался в кодировке windows-1251, пересохранил всё заработало.
Ну как я и предполагал
Удачи.
У меня нету
/**
* 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::»
*/
if (isset($_SERVER['KOHANA_ENV']))
{
Kohana::$environment = constant(‘Kohana::’.strtoupper($_SERVER['KOHANA_ENV']));
}
такого в файле, вообще что делать ?
ничего не трогать
if (getenv(‘KOHANA_ENV’) !== FALSE)
{
// Kohana::$environment = Kohana::DEVELOPMENT;
Kohana::$environment = constant(‘Kohana::’.strtoupper(getenv(‘KOHANA_ENV’)));
}
Нужно сделать вот так? т.е. убрать // или ещё и удалить след строку ?
Откуда такие строки? Надо так:
Kohana::$environment = Kohana::DEVELOPMENT;
if (isset($_SERVER['KOHANA_ENV']))
{
Kohana::$environment = constant(‘Kohana::’.strtoupper($_SERVER['KOHANA_ENV']));
}
Здравствуйте Дмитрий!
У меня проблема с кодировкой.
Кохана почему то при привязке массива к представлению, тобишь в контроллере авторизации, впереди контента добавляет BOM символы — п»їп»ї.
Сам контроллер
bind(‘message’,$message);
// Если отправляем форму то есть автиризируемся
if ($_POST)
{
// Тримим все поля формы
$_POST = Arr::map(‘trim’, $_POST);
// Проверяем на заполнение всех полей
$post = Validation::factory($_POST);
$post -> rule(‘username’, ‘not_empty’)
-> rule(‘password’, ‘not_empty’)
-> rule(‘username’, ‘min_length’, array(‘:value’, 3))
-> rule(‘username’, ‘max_length’, array(‘:value’, 50))
-> rule(‘password’, ‘min_length’, array(‘:value’, 3))
-> rule(‘password’, ‘max_length’, array(‘:value’, 50));
// Создаём метки для наименований полей при ошибке валидации
$post->labels(array(‘username’=>’Логин’,'password’=>’Пароль’));
// Производим проверку
if($post->check())
{
$username = Arr::get($_POST, ‘username’);
$password = Arr::get($_POST, ‘password’);
// авторизируемся
if(Auth::instance()->login( $username, $password ))
// Если все окей переходим в админку
Request::current()->redirect(‘admin’);
else
// иначе выводим сообщение об ошибке
$message=’Авторизаци не прошла. Неверный логин или пароль’;
}
else
{
// если не прошла валидация записывае массив с ошибками в представление
$errors = $post -> errors(‘validation’);
$content->bind(‘errors’,$errors);
}
}
// Выводим форму авторизации с описанием ошибок, если авторизация не прошла
$this->response->body($content);
}
/*
Выход пользователя
*/
function action_logout()
{
Auth::instance()->logout(true);
Request::current()->redirect(‘auth/login’);
}
} // End Main
А вот представление
Bestfuns Авторизация
Bestfuns Авторизация
Логин:
<input id="username" type="text" name="username" value="» />
Пароль:
Вход
Припервой загрузке страница отображается нормально, но когда отправляешь форму на сервер, и передаешь ошибки валидации
$errors = $post -> errors(‘validation’);
$content->bind(‘errors’,$errors);
в начало контента записываются двоичные символы кодировки BOM — п»їп»ї. В результате этого страница отображается коряво.
Как решить эту проблему? Почему Кохана добавляет в начало эти символы? Все файлы проекта у меня в кодировке UTF-8 без BOM
Денис, прежде всего спасибо тебе за этот ресурс, много нового для себя узнал по фреймворку.
Подскажите, пожалуйста, в чем может быть косяк. У меня сайт ipc-pilot.com. Сделан на фреймворке kohana. На некоторых страницах (в том числе на главной) перед содержанием и после содержания непонятные символы появляются. Не могу понять в чем причине.
Ну это код надо смотреть. Так трудно сказать.
В 3.3.х DEVELOPMENT стоит по умолчанию.
Все остальные режимы включаются после того как