Search
Write a publication
Pull to refresh

Введение в 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.

Теперь у нас имеется работающий каркас приложения, и мы можем перейти к специфичечкой части нашей задачи.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.