Официальный сайт фреймворка:
http://kohanaphp.com/Русскоязычный сайт фреймворка:
http://kohanaphp.ru/ (на данный момент крайне плохо про
работан, лучше посещать официальный ресурс)
Версия фреймворка на момент написания статьи: 2.3.2
К сожалению редактор не позволяет создавать структурированный текст, из-за чего большие части кода порой трудно читаются. В этом случае рекомендую Вам скачать PDF-вариант статьи: <a href=http://kuzya.name/files/kohana/practical_intro_kohana.pdf (22 страниц, шрифт Times New Roman, 12pt).Здравствуйте. Данная статья, как и все остальные из этой серии, ориентирована на людей которые умеют пользоваться документацией и хотя бы в малой степени с ней ознакомились. Англоязычное описание фреймворка построено довольно хорошо и понятно. По моему можно даже не знать английского языка, а руководствоваться примерами которые приводят авторы. Многие моменты в статье описываться не будут так как уже описаны в документации. В тексте статьи я постарался выставить ссылки на определённые разделы руководства везде где могут возникнуть вопросы. Вообщем, проблем быть не должно. А если Вы ранее
работали с Code Igniter, то постигнуть Kohana не составит никакого труда. Ведь это прямой потомок CI, модернизированный и лишённый многих недостатков.
Думаю стоит отметить что в статье я немного отступаю от стандартов разработки кода в Kohana. В каждый файл разработчики рекомендуют встраивать следующий код.
PHP |
defined('SYSPATH') OR die('No direct access allowed.'); |
Я его не встраиваю. Просто из привычки. К тому же мне кажется что ничего плохого от этого нет. Вы же можете поступать как захотите.
Ниже я опишу
использование базовых инструментов Kohana на примере создания сайта компании торгующей своим программным продуктом (в качестве подопытного будет программа Bred 3). Сайт будет крайне простой и незамысловатый. Состоять он будет из следующих частей:
1. Главная страница с новостями
2. Страница скриншотов программы
3. Раздел оформления заказов
4. Гостевая книга
5. Раздел загрузки программы
В процессе написания ресурса мы постараемся задействовать как можно больше полезных компонентов фреймворка.
1. ПодготовкаПервым делом скачайте свежую версию фреймворка. Что интересно, при скачивании Вы можете указать какие модули, библиотеки и языки включать в будущий архив. Дистрибутив, который я использовал при написании этой статьи, не включал в себя никаких дополнительных модулей кроме Archive. Из библиотек я выбрал только SwiftMailer. Ну и в варианте языков кроме английского был выбран русский. После скачивания распакуйте архив на "чистый" хост (у меня он называется kohana, у Вас он может иметь другое имя, учитывайте это в будущем) и обратитесь к нему через браузер. Обращаться следует именно в корень хоста, а не к файлу install.
php. Никаких проблем возникнуть не должно и в низу страницы появится надпись "Your environment passed all requirements. Remove or rename the install.
php file now." гласящая о том что всё хорошо. Удалите файл install.
php и откройте example.htaccess для редактирования. В нём строку
RewriteBase /kohana/измените на
RewriteBase /После чего переименуйте файл в .htaccess. Этим мы включили
использование mod_rewrite для красивого вида URL. Теперь пройдите по ссылке
http://kohana/welcome/index. Браузер должен отобразить страницу приветствия. Если бы мы не производили вышеописанные манипуляции с .htaccess то тоже самое обращение выглядело вот так
http://kohana/index.php/welcome/index. Полную информацию по установке фреймворка Вы найдёте тут:
http://docs.kohanaphp.com/installation и тут
http://docs.kohanaphp.com/installation/troubleshooting (на случай если возникнут какие-то проблемы).
Так же нам нужно немного подчистить конфигурацию от значений по умолчанию. Откройте файл /application/config/config.
php. Нас интересуют параметры site_domain и index_page. Из комментариев понятно что первый параметр содержит директорию в которой установлена Kohana. Его значение можно либо вообще удалить, либо заменить на одиночный слэш (корень сайта). Второй параметр обозначает индексный файл фреймворка. Так как мы с помощью .htaccess избегаем использования index.
php при обращении к сайту, значение этой ячейки тоже нужно очистить. Если этого не сделать то при автоматической генерации ссылок (например при разбитии материала на страницы) это всплывёт и будет серьёзно мешать. Вообщем, придётся изменять в любом случае.
Теперь займёмся базой
данных. Создайте у себя на сервере базу с любым именем. Затем выполните в ней код из файла database.
sql. Он создать 2 таблицы - kh_news и kh_gb. Они содержат информацию о новостях и отзывах в гостевой книге соответственно. Для того что бы фреймворк мог нормально к ней подключаться нужно указать необходимые настройки в файле /system/config/database.
php. Изначально он имеет следующее содержимое:
PHP |
$config['default'] = array ( 'benchmark' => TRUE, 'persistent' => FALSE, 'connection' => array ( 'type' => 'mysql', 'user' => 'dbuser', 'pass' => 'p@ssw0rd', 'host' => 'localhost', 'port' => FALSE, 'socket' => FALSE, 'database' => 'kohana' ), 'character_set' => 'utf8', 'table_prefix' => '', 'object' => TRUE, 'cache' => FALSE, 'escape' => TRUE ); |
Изменим содержимое массива "Connection", его ячейки user, pass, host и database. Подставьте туда свои данные. Вы могли заметить что таблицы у нас имеют префикс "kh_". Укажите его в ячейке "prefix" основного массива. Больше ничего менять не нужно. Более подробная информация по конфигурации БД располагается здесь:
http://docs.kohanaphp.com/libraries/database/configuration.
Возьмёмся за локализацию. Если при скачивании дистрибутива Вы выбирали поддержку русского языка то в дирекотрии /system/i18n должна находится папка ru_RU с языковыми файлами. Зайдите в /system/config и откройте файл locale.
php. В нём есть всего одна строка отвечающая за используемый язык. По умолчанию она настроена на работу с английским языком.
PHP |
$config['language'] = array('en_US', 'English_United States'); |
Замените её на следующую
PHP |
$config['language'] = array('ru_RU', 'Russian_Russian Federation'); |
Теперь фреймворк стал русскоязычным. Полная информация по интернационализации фреймворка -
http://docs.kohanaphp.com/general/i18n2. ДизайнВсе необходимые элементы дизайна находятся в соответствующем архиве. В корень хоста, туда где находятся папки application и system, скопируйте директорию images и файл стилей. Находящийся там же шаблон index.
php скопируйте в папку application/views, откройте и разбейте на следующие части. Код находящийся с начала шаблона и до открывающего тега "body" поместите в файл header.
php.
Код |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Начальный практикум в Kohana - http://kuzya.name</title> <meta name="keywords" content="" /> <meta name="description" content="" /> <link href="/styles.css" rel="stylesheet" type="text/css" /> </head> |
За место него в основной шаблон поставьте код отображения переменной $header.
Далее поместите в файл menu.php код начинающийся сразу после комментария "start header" и до комментария "start page"
Код |
<!-- start header --> <div id="header"> <div id="logo"> <h1><a href="#">Metamorph_global</a></h1> <h2><a href="http://www.metamorphozis.com/" id="metamorph">Design by Metamorphosis Design</a></h2> </div> <div id="menu"> <ul> <li><a href="/">Главная</a></li> <li><a href="/screenshots/">Скриншоты</a></li> <li><a href="/buy/">Купить</a></li> <li><a href="/gb/">Гостевая</a></li> <li><a href="/download/">Скачать</a></li> </ul> </div> </div> <!-- end header --> <hr /> |
На его место вставьте код отображения переменной $menu
Ну и всё начиная с комментария "start footer" и до конца файла перенесите в файл footer.php, поместив за место него соответствующий код.