Zend Framework таки йде по шляху старших братів по розуму – Zend Tool допоможе Вам у швидкому створенні проекту на основі ZF.

Для початку нам знадобиться завантажити Zend Framework з сайту розробників, або скористатися репозиторієм проекту:

~$ 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):

class UsersController extends Zend_Controller_Action
{
public function init()
{
/* Initialize action controller here */
}
public function indexAction()
{
// body action
}
public function loginAction()
{
// body action
}
public function logoutAction()
{
// body action
}
}

Для кожного action’а буде створено практично порожній view скрипт:

View script controller for users and script/action login name

Примітка: Якщо папка public не є кореневою – додайте в файл «/public/.htaccess» правило «RewriteBase /public/» після «RewriteEngine On»

Крім цього функціонала ще є такі “можливості”:

  • Створення класу для юніт тестів, включення/вимикання оних – провайдер test не розпізнається утилітою
  • Створення view – лається і нічого не створює, виправлення помилки в класі тягне за собою ще більше помилок

У TODO у розробників:

  • Генератор моделей – хотілося б подивитися на організацію “правильної” моделі з урахуванням останніх змін у фреймворку
  • Генератор форм – цікаво, повинна ж бути зв’язок з моделлю, думаю буде смачно

Корисні статті:

  • Документація по Zend_Tool_Project
  • Zend_Application Quick Start
  • Using Zend_Tool On The Command Line
  • Zend_Tool for the Developer
  • Zend_Tool for the Developer. Part 2
  • Zend_Tool and ZF 1.8