Установка PHP-фреймворка Kohana

Среди многих фреймворков на основе PHP Kohana выделяется своей концепцией, которая позволяет разрабатывать полноценные объектно-ориентированные веб-приложения. Этот фреймворк основан на философии «build-by-the-community, for-the-community» (то есть, разработан сообществом для сообщества) и поставляется по лицензии BSD.

Данное руководство охватывает установку, основы работы с фреймворком Kohana, ключевые понятия и важные модули, необходимые для начала разработки веб-приложения.

Фреймворки для разработки веб-приложений

Учитывая природу РНР и способ обработки написанного кода, при разработке приложения необязательно использовать фреймворк. Однако фреймворк способен сделать процесс создания приложения, которое должно долго просуществовать (благодаря хорошо написанному коду, над которым работало несколько специалистов), гораздо проще и быстрее.

Что такое фреймворк?

Фреймворки предоставляют необходимую структуру для начала разработки веб-приложений, а также надежно связывают все компоненты, обеспечивая надежное и логичное построение приложения.

Они, как правило, поставляются с большим количеством общих инструментов, которые обрабатывают важные для жизни веб-приложений процессы (среди них обработка входящих запросов, создание и заполнение шаблонов, возврат ответов, обработка безопасности и аутентификации, управление файлами cookies и сессиями, и многое другое).

Что делает фреймворк легким?

В зависимости от количества инструментов, с которыми фреймворк поставляется «из коробки», фреймворки можно условно разделить на легкие и «все в одном» (или полный стек). Несмотря на мощность и внушительное количество функций, фреймворк Kohana все же считается легким, поскольку (согласно способу проектирования и установки) он дает разработчику некоторую свободу.

Фреймворк Kohana

Kohana основывается на архитектуре HMVC (англ. Hierarchical Model View Controller, Иерархические Модель-Контроллер-Вид). В целом, этот фреймворк предлагает, вероятно, все инструменты, необходимые для быстрой разработки, а также для простого развертывания и поддержки современного приложения.

Возможности Kohana

По сравнению с другими похожими решениями, Kohana выделяется не столько своими функциями, сколько благодаря способу предоставления и выполнения этих функций. А именно:

  • Kohana поставляется с большим количеством наиболее часто необходимых дополнительных инструментов и модулей (среди них шифрование, выполнение проверок, доступ к базе данных и т.д.).
  • Предоставляет способ простого расширения стандартных настроек.
  • Позволяет разрабатывать коммерческие приложения благодаря лицензированию BSD.
  • Начало работы и установка очень просты по сравнению с другими похожими решениями.
  • Все модули разработаны и собраны при помощи классов и объектов. Фреймворк основан на принципе «Don’t Repeat Yourself».
  • Предоставляет инструменты профилирования и отладки.
  • Код очень хорошо документированы. Фреймворк поставляется с довольно хорошей документации с примерами и объяснениями.
  • Вместо бесконечных конфигураций фреймворк предпочитает следовать соглашениям.

Стандартные модули Kohana

Ниже представлен список основных модулей Kohana «из коробки»:

  • Auth: отвечает за авторизацию пользователей.
  • Cache: общий интерфейс кэширования.
  • Codebench: инструмент тестирования кода.
  • Database: инвариантный к БД модуль для управления запросами и результатами БД.
  • Image: модуль для управления изображениями.
  • ORM (Object Relational Mapper): библиотека моделирования для объектно-реляционного преобразования.
  • Unittest: модульное тестирование.

Шаблон «Модель-Вид-Контроллер»

Шаблон приложений MVC (Model – View – Controller) используется для разделения кода и логических структур на группы в зависимости от их роли и функции. Каждый из этих компонентов обрабатывает информацию, а затем распространяет вывод между остальными компонентами для совместной обработки, в результате которой получается финальная презентация для конечного пользователя (то есть, результат посещения URL-а).

Маршрутизация

Согласно шаблону MVC, запрос проходит определенный маршрут, прежде чем результат вернется к пользователю. Ниже представлен пример такого процесса:

(1)                       (2)                    (3)
Request       --->       Parsing       --->     Matching
[Data] .. [] >> .. [] > [] [] [] .. .. .>. .. . ........
(4)                       (5)                    (6)
Routing       --->      Controller     --->     Response
----- .. >> .. >> ..  ../\ .. /\  []  >> [] >>  [Data] ........................||  . ||
........................\/  . \/
......................Model   View

Модель

В модели определяются классы объектов и обрабатываются данные. В этом слое нет прямого взаимодействия с другими частями приложения (например, с видами). Когда происходит новое событие, модель извещает об этом контроллер, который порождает эти события.

Вид

Этот слой состоит из файлов, в которых генерируются виды (то есть, представления данных). Объект контроллера, используя вид, предоставляет пользователю конечный результат.

Контроллер

В контроллере с помощью модели и вида обрабатываются проанализированные данные запроса, генерируя ответы с помощью функций. Контроллер соединяет все компоненты между собой.

Файлы шаблонов

Файлы шаблонов формируют базу, которая, как правило, используется для облегчения технического обслуживания представлений некоторых данных, переданных приложением конечному пользователю. С точки зрения PHP-приложений, язык PHP выступает и в качестве языка шаблонов, тем самым обеспечивая синтаксис шаблонов.

Программирование в Kohana

Kohana состоит из файлов, разделенных по тщательно структурированным каталогам, которые в результате передаются на сервер производства и используются для запуска веб-приложения. Таким образом, каждый пакет Kohana можно считать отдельным веб-приложением.

Примеры данного руководства выполнены на сервере Ubuntu. До стадии производства можно создавать веб-приложения Kohana на домашнем компьютере , а затем опубликовать код.

Примечание: фреймворку Kohana нужен стандартный стек LAMP (Linux, Apache, MySQL ,PHP). Чтобы быстро установить этот стек, используйте:

sudo apt-get install tasksel
sudo tasksel install lamp-server

Загрузка и установка Kohana

Последней стабильной версией является Kohana 3.3.1. Чтобы загрузить ее на выделенный сервер, используйте wget:

wget https://github.com/kohana/kohana/releases/download/v3.3.1/kohana-v3.3.1.zip

Примечание: если появилась новая стабильная версия, измените ссылку в команде.

После загрузки распакуйте полученный архив. Для этого используйте команду unzip и укажите целевой каталог (в данном руководстве это my_app):

# Чтобы установить инструмент unzip
aptitude install -y unzip
# Распаковать и извлечь файлы
unzip kohana-v3.3.1.zip -d my_app
# Удалить zip-пакет
rm -v kohana-v3.3.1.zip

Когда пакеты фреймворка готовы, переместите их в более постоянное местоположение и настройте взаимодействие с Apache. В данном случае рекомендуется переместить файлы в /var/www/:

# Remove the *index.html* inside /var/www
rm -v /var/www/index.html
# Move the application directory inside
mv my_app /var/www/
# Enter the directory
cd /var/www/my_app

Теперь установка доступна в сети:

# посетите: http://[your droplet's IP add.]/my_app/
http://11.22.33.444/my_app/

Примечание: фреймворк Kohana еще не готов к работе, он требует предварительной настройки.

Начало работы с Kohana

Программа самозагрузки Kohana

Прежде чем приступить к разработке приложения, загрузите программу раскрутки и завершите установку.

Запустите следующую команду, чтобы отредактировать файл загрузки при помощи nano:

nano application/bootstrap.php

Отредактируйте временной пояс:

# Find date_default_timezone_set and set your timezone
date_default_timezone_set('Europe/London');

Установите локаль при помощи параметра setlocale:

# Find setlocale and set your locale
setlocale(LC_ALL, 'en_UK.utf-8');

Установите местонахождение каталога приложения:

# Find base_url and set the base application directory
# Relative to the base Apache directory (i.e. /var/www/)
Kohana::init(array(
'base_url' => '/my_app/',
));

Включите модули:

# Найдите Kohana::modules и раскомментируйте их
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
'orm'        => MODPATH.'orm',        // Object Relationship Mapping
'oauth'      => MODPATH.'oauth',      // OAuth authentication
'pagination' => MODPATH.'pagination', // Paging of results
'unittest'   => MODPATH.'unittest',   // Unit testing
'userguide'  => MODPATH.'userguide',  // User guide and API documentation
));

Сохраните и закройте файл (CTRL+X и Y для подтверждения).

Права на каталог приложения

Чтобы запустить Kohana, нужно открыть для записи следующие папки:

sudo chmod -R a+rwx application/cache
sudo chmod -R a+rwx application/logs

Завершающие действия и тестирование

Теперь протестируйте установку и при помощи веб-браузера откройте приложение:

# например: http://[IP.адрес.сервера]/my_app/
http://11.22.33.444/my_app/

Убедившись, что все работает должным образом, удалите install.php. Для этого запустите:

rm -v install.php

Снова посетите вышеприведенный URL; на экране появится сообщение «hello, world!». Это значит, что теперь запросы обрабатываются должным образом через нужный шаблон.

Tags: , , , , ,

Добавить комментарий