
Данная статья познакомит Вас с основами Zend Framework 2, и научит, как создать простое приложение взаимодействующее с БД и соответствующее паттерну MVC. Итогом будет рабочее ZF2 приложение, в коде которого можно будет покопаться, чтобы узнать побольше о том, как все это связано и работает. Если Вас заинтересовало — добро пожаловать под кат.
Некоторые предположения
Это руководство предполагает, что вы работаете с PHP версии 5.3.10 и выше, веб-сервером Apache и MySQL, доступным через расширение PDO. Ваш Apache должен иметь активированное расширение mod_rewrite. Чтобы активировать mod_rewrite в большинстве дистрибутивов Linux, введите в терминале следующую команду:
sudo a2enmod rewrite
Вы также должны убедиться, что Apache настроен на поддержку .htaccess файлов. Для этого в файле httpd.conf нужно изменить следущую строку:
AllowOverride None
на
AllowOverride All
Для точных деталей обратитесь к документации вашего дистрибутива. Вы не сможете перейти ни на какую страницу, кроме главной, если не настроите mod_rewrite и .htaccess.
Учебное приложение
Приложение, которое мы собираемся создать, является простой системой инвентаризации, позволяющей увидеть, какими музыкальными альбомами владеет пользователь. На сайте будет всего 4 страницы:
- На первой странице будет выводиться список альбомов и ссылки, ведущие на остальные страницы.
- С помощью второй страницы пользователь получит возможность добавлять записи о новых альбомах.
- Третья страница предоставит возможность для редактирования уже имеющихся в базе данных записей.
- И, наконец, с помощью четвертой страницы, пользователь сможет удалять записи из таблицы.
Для хранения информации в базе данных, нам потребуется таблица со следующей структурой:
Field name | Type | Null | Notes |
id | integer | No | Primary key, auto-increment |
artist | varchar(100) | No | |
title | varchar(100) | No | Notes |
Начало работы: каркас приложения
Для того, чтобы создать приложение, нам понадобится ZendSkeletonApplication, который доступен на GitHub. Для того чтобы получить рабочую копию проекта, мы клонируем репозиторий и используем composer для удовлетворения зависимойстей:
cd my/project/dir
git clone git://github.com/zendframework/ZendSkeletonApplication.git
mv ZendSkeletonApplication zf2-tutorial
cd zf2-tutorial
php composer.phar self-update
php composer.phar install
Теперь мы можем заняться созданием виртуального хоста.
Виртуальный хост
Сейчас, нам нужно создать виртуальный хост Apache для приложения и отредактировать файл с хостами таким образом, чтобы zf2-tutorial.localhost обслуживал index.php из каталога zf2-tutorial/public.
Для настройки виртуальных хостов вам понадобится внести изменения в файл httpd.conf. Убедитесь, что NameVirtualHost определена и установлена на "*: 80" или подобное, а затем добавьте в файл следующие строки:
<VirtualHost *:80>
ServerName zf2-tutorial.localhost
DocumentRoot /path/to/zf2-tutorial/public
SetEnv APPLICATION_ENV "development"
<Directory /path/to/zf2-tutorial/public>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Убедитесь, что вы изменили /etc/hosts или c:\windows\system32\drivers\etc\hosts таким образом, чтобы zf2-tutorial.localhost имел адрес 127.0.0.1. Получить доступ к сайту можно по ссылке ссылке.
Если всё сделано правильно, то на экране можно будет увидеть нечто подобное:

Чтобы проверить, работает ли ваш .htaccess, перейдите на zf2-tutorial.localhost/1234. Результат должен быть примерно таким:

Если Вы увидели стандартную 404-ю ошибку Apache, то прежде, чем продолжить, необходимо будет исправить проблемы с использованием .htaccess.
Теперь у нас имеется работающий каркас приложения, и мы можем перейти к специфичечкой части нашей задачи.