Собираем скелетон для нового проекта на Zend Framework 2

Привет,

Совсем недавно Zend Framework 2 (далее ZF) обновился до версии 2.4.0. Об изменениях можно прочесть тут. Это значимое обновление, и можно с уверенностью говорить что у ZF большое будущее. Конечно, скоро нас ждет более важный апгрейд в лице Zend Framework 3, но сейчас не об этом.

По этому поводу я решил наконец-то завершить и опубликовать первую статью из серии ZF. И логично, что сперва мы научимся собирать скелет MVC приложения на ZF. Это самый простой, и самый важный этап в освоении любого веб-фреймворка.

Главной сложностью и хорошим толчком к изучению нового фреймворка всегда бывает именно эта тема. Новички часто вовсе не понимают как готовить фреймворк. А иные нативщики свыклись к приевшимся методам построения приложения, что отдаляет их от осознания полезности концепций фреймворков.

Введение

В этой статье мы запустим Zend Framework 2 Skeleton Application – абсолютно шаблонное приложение, демонстрирующее фундаментальные основы построения приложения на нашем фреймворке. Побочно научимся устанавливать Composer для работы с зависимыми пакетами. Настроим хост под Apache и увидим результат в браузере.

Каждый фреймворк готовят по своему. Наш фреймворк на этом этапе прост. А закоренелые косые взгляды в сторону ZF часто упираются, но вполне обосновано, в ужасную сухую документацию. Я советую – почаще читайте сорсы.

У меня минимальный опыт с другими фреймворками, и чуть больше желания попробовать что-то иное. Это доказывает важное – ZF можно полюбить 😉

Начинаем…

Что за Composer?

Тут сильно задерживаться не станем. Composer нам нужен для установки и последующих обновлений фреймворка ZF и пакетов (библиотек) которые мы возможно захотим использовать в нашем приложении. Раньше для подобных целей php-шники использовали PEAR.

Итак, есть два основных метода работы с composer… Первое – это установить eго в папку с приложением. Второе – держать единый composer для операционной системы и работать со всеми проектами через него. Советую сразу научиться второму методу, чтобы минимизировать риск всевозможных проблем в будущем.

curl -sS https://getcomposer.org/installer | php

sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
sudo chown developer:developer /usr/local/bin/composer

Мы установили composer, дали ему нужные права и связали с нашим рабочим пользователем (developer). Уже сейчас работа с composer-ом доступна отовсюду.

ВАЖНО! Для работы composer-у требуется пакет git.

sudo apt-get install git

Установка Skeleton Application

Слово “установка”, как и в случае с composer-ом, тут не сильно уместна. По сути – это клонирование готового проекта через git. Лично я думаю, что правильно понимать эти нюансы.

Начали… Сперва создадим папку для нашего проекта и установим application.

mkdir -p /var/www/zf2demo
cd /var/www/zf2demo

composer create-project --repository-url="http://packages.zendframework.com" zendframework/skeleton-application -s dev /var/www/zf2demo

Перед окончанием придется ответить на вопрос “Do you want to remove the existing VCS (.git, .svn..) history?”. Если мы не планируем делать коммиты в проект ZendSkeletonApplication на github – то выбираем ответ по умолчанию, и удаляем git-историю проекта. Тем более, что, скорее всего, нам понадобится привязать проект к своему репозиторию контроля версий.

Вот собственно и все. Все необходимые файлы и зависимые пакеты были склонированы в нашу папку “/var/www/zf2demo”.

Сейчас, чисто на всякий (ну и подучиться), можно контрольно обновить стянутый вместе с проектом composer и зависимости проекта.

./composer.phar self-update
./composer.phar update

VirtualHost для Apache

Тут все привычно. Обращаем внимание, что необходимо иметь включенный Rewrite Module.

sudo a2enmod rewrite

Создадим файл виртуального хоста…

sudo nano /etc/apache2/sites-available/zf2demo.conf

И положим туда следующее…

<VirtualHost zf2demo.dev:80>
    ServerName zf2demo.dev
    ServerAdmin [email protected]

    SetEnv APPLICATION_ENV development

    DocumentRoot /var/www/zf2demo/public
    <Directory /var/www/zf2demo/public>
        Options -Indexes +FollowSymLinks +MultiViews
        DirectoryIndex index.php
        AllowOverride all
        Order allow,deny
        Allow from all
    </Directory>

    <FilesMatch "\.(htm|html|php)$">
        SetHandler application/x-httpd-php
    </FilesMatch>

    <FilesMatch "\.php$">
        Order Allow,Deny
        Deny from all
    </FilesMatch>

    <FilesMatch "index\.php$">
        Order Allow,Deny
        Allow from all
    </FilesMatch>

    LogLevel notice

    ErrorLog ${APACHE_LOG_DIR}/zf2demo-error.log
    CustomLog ${APACHE_LOG_DIR}/zf2demo-access.log combined
</VirtualHost>

* Это немного хакнутый вариант: тут изключен доступ к php файлам, кроме корневого index.php, и отключена индексация содержимого папок.

Теперь научим систему видеть наш новорожденный хост “zf2demo.dev” как реальный домен.

sudo nano /etc/hosts

Добавим в конец файла следующую строку…

127.0.0.1 zf2demo.dev

Включим наш хост и перезапустим Apache…

sudo a2ensite zf2demo

sudo /etc/init.d/apache2 restart

This Is It

Открываем в браузере zf2demo.dev и радуемся 🙂

ZF2 Skeleton Application

Вот и все.
Добро пожаловать в мир Zend Framework 2!

p.s.
оригинальную статью можно всегда найти в блестящей документации zend framework-а здесь

Google

Leave a Reply