Установка и настройка FuelPHP

Что такое FuelPHP?

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

Данное руководство продемонстрирует установку этого фреймворка, а также работу с небольшим тестовым приложением FuelPHP. Все действия руководства были выполнены на виртуальном выделенном сервере Ubuntu с заранее установленными программами LAMP stack. Чтобы получить инструкции по установке LAMP, обратитесь к статье «Установка Linux, Apache, MySQL, PHP на Ubuntu 12.04». Для корректной работы FuelPHP необходим веб-сервер (протестирован на Apache, Nginx и IIS) и PHP 5.3+.

Установка FuelPHP

Для начала нужно скачать быстрый инсталлятор при помощи команды curl. Запустите команду:

curl get.fuelphp.com/oil | sh

Это загрузит пакет oil на облачный сервер и поместит его в папку /usr/bin.

Теперь нужно установить Git, поскольку пакет oil будет извлекать из него код приложения:

sudo apt-get update
sudo apt-get install git-core

Перейдите в папку root  веб-сервера (в Apache это /var/www) и запустите следующую команду, чтобы создать приложение FuelPHP:

oil create fuel

При этом будут извлечены все необходимые файлы (с помощью Git) и библиотеки (через Composer), а затем размещены в папке под названием fuel. Если сейчас открыть в браузере ip-адрес/fuel/public, появится первая страница приложения.

При желании можете изменить document root веб-сервера, указав непосредственно на папку public приложения FuelPHP, чтобы иметь возможность получить доступ к ней через IP-адрес (или доменное имя). Чтобы сделать это, отредактируйте следующий файл виртуального хоста:

nano /etc/apache2/sites-available/default

И замените строку:

DocumentRoot /var/www/

этой строкой:

DocumentRoot /var/www/fuel/public/

Затем перезапустите Apache, чтобы активировать изменения.

sudo service apache2 restart

Чтобы сделать URL-ы фреймворка FuelPHP чистыми (clean URLs – ссылки, избавленные от неудобных сегментов index.php), нужно убедиться в том, что файлы  .htaccess могут переопределять настройки Apache по умолчанию. Для этого необходимо включить mod_rewrite:

Чтобы узнать, доступен ли данный модуль, используйте:

apache2ctl -M

Если в появившийся список внесен rewrite_module, модуль включен. В противном случае используйте следующую команду:

a2enmod rewrite

Затем отредактируйте файл виртуального хоста Apache по умолчанию, изменив значение Allow Overrides на All в разделе каталога /var/www/. Этот файл содержит все папки приложений fuel. Откройте файл для редактирования при помощи команды:

nano /etc/apache2/sites-available/default

Найдите нужный блок и внесите в него такие изменения:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

Прежде чем перезапустить сервер, нужно также установить часовой пояс по умолчанию в файле php.ini:

nano /etc/php5/apache2/php.ini

Найдите в этом файле следующую строку:

;date.timezone =

Уберите символ точки с запятой вначале строки и установите часовой пояс PHP в следующем формате:

date.timezone = America/Toronto

Сохраните файл и перезапустите Apache:

sudo service apache2 restart

Затем создайте пустую базу данных для приложения (предполагается наличие MySQL или MariaDB). Откройте соответствующий терминал и выполните следующую команду:

create database fuel;

Это создаст пустую базу данных по имени fuel. Закройте терминал MySQL и вернитесь к приложению; теперь нужно отредактировать файл конфигурации и включить некоторые настройки. Отредактируйте конфигурационный файл из root-каталога приложения FuelPHP:

nano /var/www/fuel/fuel/app/config/config.php

В нем нужно раскомментировать массивы always_load и packages, а также пакет orm. Благодаря этому FuelPHP будет загружать вспомогательный ORM-пакет (для разработки моделей), с которым он поставляется. Сохраните файл и закройте его. Теперь нужно установить соединение с базой данных. Тем не менее, в папке app/config (в подпапке development) необходимо отредактировать файл db.php (учитывая, что вы по умолчанию находитесь в среде разработки FuelPHP):

nano /var/www/fuel/fuel/app/config/development/db.php

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

Далее понадобится скаффолдинг (scaffolding – метод разработки взаимодействующих с БД приложений). По сути, это набор контроллеров, моделей и представлений, которые определяют модель приложения и содержат код CRUD-операций по умолчанию. Предположим, данное приложение связано со статьями, которым нужны заголовок и тело. Итак, попробуйте создать скаффолдинг с помощью следующей команды (из root-папки приложения, /var/www/fuel):

oil generate scaffold articles title:string body:text

Данная команда генерирует скаффолдинг для модели статей, в которой определяется заголовок и тело. Если открыть папку fuel/app/classes, можно найти файлы нового контроллера, модели и вида. Для этой модели осталось выполнить одну команду – migrate, команду миграции БД, которая создаст таблицу для размещения контента статьи.

oil refine migrate

Данная команда использует инструкции файла /var/www/fuel/fuel/app/migrations/001_create_articles.php, сгенерированного ранее вместе со скаффолдингом, чтобы создать таблицу с правильным количеством столбцов. Если проверить БД, можно увидеть новую таблицу по имени articles, состоящую из столбцов id, title, body, created_at, updated_at (первый и последние два столбца FuelPHP генерирует автоматически).

Теперь можно использовать браузер, чтобы перейти к контроллеру articles (ip-адрес/articles, если document root веб-сервера указывает на папку public). Отсюда можно выполнить все операции CRUD на модель статьи; можно добавить, просмотреть, обновить и сразу же удалить статьи.

Итоги

Данное руководство продемонстрировало установку FuelPHP из командной строки, а также быстрый способ разработки основы приложения. Кроме того, статья охватывает использование скаффолдинга моделей статей, что позволяет автоматически  создать нужный контроллер или класс моделей, а также выполнить операции CRUD.

Tags: , , , , , , , , , , , ,

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