Zend Framework таки идет по пути
Для начала нам понадобится скачать Zend Framework с сайта разработчиков, или воспользоваться SVN репозиторием (из всего этого добра нам нужна папка bin и library/Zend, остальное пока не понадобится):
~$ svn co http://framework.zend.com/svn/framework/standard/trunk/bin/ ./bin
~$ svn co http://framework.zend.com/svn/framework/standard/trunk/library/Zend ./library/Zend
Примечание: если Вы true-линуксойд и частенько создаете проекты на ZF — то закиньте файл zf.sh в /usr/bin (или любой иной путь, где система сможет его найти), а папку Zend туда, где у Вас прописан include_path для PHP (выполните команду php -i |grep include_path)
У нас должна получиться следующая структура каталогов:
htdocs |-- bin | |-- zf.bat | |-- zf.php | `-- zf.sh `-- library `-- Zend
Теперь открываем консоль идем в директорию htdocs и набираем:
# не забываем chmod a+x ./bin/zf.sh
~$ ./bin/zf.sh create project ./
Примечание: утилита тестировалась под Linux, есть вероятность, что под Windows тоже будет работать (используйте zf.bat)
После этого у нас должен быть создан проект, и зайдя на страничку Вы должны увидеть что-то похожее на картинку в самом начале статьи. Структура каталога будет выглядеть следующим образом:
htdocs |-- application | |-- Bootstrap.php | |-- configs | | `-- application.ini | |-- controllers | | |-- ErrorController.php | | `-- IndexController.php | |-- models | `-- views | |-- helpers | `-- scripts | |-- error | | `-- error.phtml | `-- index | `-- index.phtml |-- library |-- public | `-- index.php `-- tests |-- application | `-- bootstrap.php |-- library | `-- bootstrap.php `-- phpunit.xml
Идем дальше — создадим контроллер и экшены:
# создаем контроллер users и два экшена
~$ ./bin/zf.sh create controller users
~$ ./bin/zf.sh create action login users
~$ ./bin/zf.sh create action logout users
Смотрим на результат (файл UsersController.php):
<?php
class UsersController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// action body
}
public function loginAction()
{
// action body
}
public function logoutAction()
{
// action body
}
}
Для каждого action'а будет создан практически пустой view скрипт:
<br /><br /><center>View script for controller <b>users</b> and script/action name <b>login</b></center>
Примечание: Если папка public не является корневой — то добавьте в файл «/public/.htaccess» правило «RewriteBase /public/» после «RewriteEngine On»
Кроме данного функционала еще есть следующие «возможности»:
- Создание класса для юнит тестов, включение/выключение оных — провайдер test не распознается утилитой
- Создание view — ругается и ничего не создает, исправление ошибки в классе влечет за собой еще больше ошибок
В TODO у разработчиков:
- Генератор моделей — хотелось бы посмотреть на организацию «правильной» модели с учетом последних изменений в фреймворке
- Генератор форм — интересно, должна же быть связь с моделью, думаю будет вкусно
Полезные статьи:
- Документация по Zend_Tool_Project
- Zend_Application Quick Start
- Using Zend_Tool to start up your ZF Project
- Zend_Tool for the Developer
- Zend_Tool for the Developer. Part 2
- Zend_Tool and ZF 1.8
Ссылка на пост в блоге: Использование Zend_Tool