Привет,
Совсем недавно 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 и радуемся 🙂
Вот и все.
Добро пожаловать в мир Zend Framework 2!
p.s.
оригинальную статью можно всегда найти в блестящей документации zend framework-а здесь