Как стать автором
Обновить

Введение в Zend Framework 2.0. Часть 1


Данная статья познакомит Вас с основами 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.

Теперь у нас имеется работающий каркас приложения, и мы можем перейти к специфичечкой части нашей задачи.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.