Code Generation in ZF2
-
Upload
victor-farazdagi -
Category
Documents
-
view
1.578 -
download
2
description
Transcript of Code Generation in ZF2
![Page 1: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/1.jpg)
ZF2 Code Generationили почему лучше день потерять, а потом за 5мин. долететь
Saturday, April 21, 2012
![Page 2: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/2.jpg)
Об авторе
Phrozn - phrozn.info
zftalk.dev - zfcasts.ru
Phing Contributor
ZF Evangelist & Contributor
Victor Farazdagi
/farazdagi
@farazdagi
Saturday, April 21, 2012
![Page 3: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/3.jpg)
Список литературыSkynet in ZF 2.0 Presentation by R. Schindler
The Unbearable Stupidity of Modeling by P. Friese
Ward’s Wiki aka PortlandPattern Repository, the World’s first wiki
Code Generation in Action by J. Herrington
DSLs by M. Fowler
The Pragmatic Programmer by A. Hunt & D. Thomas
MDA Explained by A. Kleppe, J. Warmer, W. Bast
Saturday, April 21, 2012
![Page 4: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/4.jpg)
Структура доклада
1.Определение концепции кодогенерации
2.Обзор существующих инструментов
3.Перспективы развития в ZF2
4.Выводы (честная попытка их сделать)
Saturday, April 21, 2012
![Page 5: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/5.jpg)
ОБП
Saturday, April 21, 2012
![Page 6: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/6.jpg)
ОБП
В ZF1 нет адекватного инструментария
Saturday, April 21, 2012
![Page 7: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/7.jpg)
ОБП
В ZF1 нет адекватного инструментария
В ZF2 нет готового инструментария
Saturday, April 21, 2012
![Page 8: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/8.jpg)
ОБП
В ZF1 нет адекватного инструментария
В ZF2 нет готового инструментария
Saturday, April 21, 2012
![Page 9: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/9.jpg)
ОБП
Адекватного инструментария нет вообще
В ZF1 нет адекватного инструментария
В ZF2 нет готового инструментария
Saturday, April 21, 2012
![Page 10: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/10.jpg)
Адекватного инструментария нет вообще
What??
Saturday, April 21, 2012
![Page 11: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/11.jpg)
Адекватного инструментария нет вообще
What??
Saturday, April 21, 2012
![Page 12: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/12.jpg)
Адекватного инструментария нет вообще
What??
Bitch, Pleeease *
* Дадагой ддуг, Вы ошибаетес!
Saturday, April 21, 2012
![Page 13: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/13.jpg)
Адекватного инструментария нет вообще
What??
Bitch, Pleeease *
* Дадагой ддуг, Вы ошибаетес!
Saturday, April 21, 2012
![Page 14: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/14.jpg)
Что это за зверь такой - Кодогенерация?
Saturday, April 21, 2012
![Page 15: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/15.jpg)
Определение
Кодогенерация - процесс преобразования высокоуровневого (более абстрактного) кода в низкоуровневый (менее
абстрактный) код.
Процесс генерации кода обычно автоматизируют путем написания инструмента (Code Generator) для такого преобразования.
Абстрактное представление
Менее абстрактное представление
Saturday, April 21, 2012
![Page 16: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/16.jpg)
Определение (прод.)
Кодогенерация - написание программ, которые пишут другие программы.
Исходный код Выходной кодCode
Generator
Saturday, April 21, 2012
![Page 17: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/17.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Saturday, April 21, 2012
![Page 18: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/18.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Saturday, April 21, 2012
![Page 19: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/19.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Saturday, April 21, 2012
![Page 20: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/20.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Для создания артефактов
Saturday, April 21, 2012
![Page 21: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/21.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Для создания артефактов
Design Smell
Saturday, April 21, 2012
![Page 22: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/22.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Для создания артефактов
Design Smell
DRY
Saturday, April 21, 2012
![Page 23: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/23.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Для создания артефактов
Design Smell
Отлично работает с CI
DRY
Saturday, April 21, 2012
![Page 24: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/24.jpg)
Виды Генераторов Кода
Пассивные Генераторы Кода
Активные Генераторы Кода
Save typing
Продвинутая шаблонизация
Для создания артефактов
Design Smell
Отлично работает с CI
DRY
Дешевая (ре)генерация
Saturday, April 21, 2012
![Page 25: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/25.jpg)
Почему это важно?
Saturday, April 21, 2012
![Page 26: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/26.jpg)
Почему это важно?
Время программера - главная ценность
Saturday, April 21, 2012
![Page 27: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/27.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Saturday, April 21, 2012
![Page 28: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/28.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Saturday, April 21, 2012
![Page 29: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/29.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Saturday, April 21, 2012
![Page 30: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/30.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 31: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/31.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 32: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/32.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 33: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/33.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 34: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/34.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 35: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/35.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
Saturday, April 21, 2012
![Page 36: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/36.jpg)
Почему это важно?
Время программера - главная ценность Креативность
Рутинные задачи
Кодогенерация
Скука
?
Saturday, April 21, 2012
![Page 37: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/37.jpg)
Анатомия проекта
Saturday, April 21, 2012
![Page 38: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/38.jpg)
Анатомия проекта
Каркас (ZF, Symfony, Yii)
Saturday, April 21, 2012
![Page 39: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/39.jpg)
Анатомия проекта
Каркас (ZF, Symfony, Yii)
Батарейки (Doctrine, Twig, Buzz
etc)
Saturday, April 21, 2012
![Page 40: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/40.jpg)
Анатомия проекта
Каркас (ZF, Symfony, Yii)
Батарейки (Doctrine, Twig, Buzz
etc)
Наш код
Saturday, April 21, 2012
![Page 41: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/41.jpg)
Анатомия проекта
Каркас (ZF, Symfony, Yii)
Батарейки (Doctrine, Twig, Buzz
etc)
Наш код
Нетривиальный код
Saturday, April 21, 2012
![Page 42: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/42.jpg)
Анатомия проекта
Каркас (ZF, Symfony, Yii)
Батарейки (Doctrine, Twig, Buzz
etc)
Наш код
Нетривиальный код
Рутинный/скучный код
Saturday, April 21, 2012
![Page 43: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/43.jpg)
Качество кода
Generated code sucks!!!
Saturday, April 21, 2012
![Page 44: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/44.jpg)
Качество кода
Generated code sucks!!!
Дадагой ддуг....
Saturday, April 21, 2012
![Page 45: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/45.jpg)
Качество кода
Ты сам пишешь генератор кода.Сгенерированный код будет настолько хорош, насколько хорош созданный тобой генератор.
Generated code sucks!!!
Saturday, April 21, 2012
![Page 46: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/46.jpg)
Кодогенерация и DSL
DSL DSL
DSL General Purpose Language
Saturday, April 21, 2012
![Page 47: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/47.jpg)
DSLs + Code Generation
Saturday, April 21, 2012
![Page 48: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/48.jpg)
ПримерыГенерация сущностей
Генерация форм из модели
SASS, LESS (CSS compiling/transforming)
JavaScript Generation
Оптимизация, преобразование, скаффолдинг
Генерация промежуточного DSL
тысячи их...
Saturday, April 21, 2012
![Page 49: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/49.jpg)
Итак, что дает CG..
Saturday, April 21, 2012
![Page 50: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/50.jpg)
Итак, что дает CG..
Качество / Quality
Saturday, April 21, 2012
![Page 51: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/51.jpg)
Итак, что дает CG..
Качество / Quality
Согласованность / Consistency
Saturday, April 21, 2012
![Page 52: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/52.jpg)
Итак, что дает CG..
Качество / Quality
Согласованность / Consistency
Don’t Repeat Yourself (DRY)
Saturday, April 21, 2012
![Page 53: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/53.jpg)
Итак, что дает CG..
Качество / Quality
Согласованность / Consistency
Don’t Repeat Yourself (DRY)
Скорость разработки
Saturday, April 21, 2012
![Page 54: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/54.jpg)
Резюмируя..
Work Harder
Saturday, April 21, 2012
![Page 55: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/55.jpg)
Резюмируя..
Work Harder
Saturday, April 21, 2012
![Page 56: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/56.jpg)
Резюмируя..
Work Harder Work Smarter
Saturday, April 21, 2012
![Page 57: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/57.jpg)
Обзор инструментовSaturday, April 21, 2012
![Page 58: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/58.jpg)
RoR 3
Очень качественная реализация Упор на пассивные генераторы
Экономят кучу времениBoilerplate code Отличная расширяемость
Saturday, April 21, 2012
![Page 59: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/59.jpg)
RoR 3
rails new rails generate rake
Очень качественная реализация Упор на пассивные генераторы
Экономят кучу времениBoilerplate code Отличная расширяемость
Saturday, April 21, 2012
![Page 60: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/60.jpg)
Django
Другая философияУ тебя есть инструменты для
простого решения задачи, но задачи (включая рутинные) ты будешь
решать сам.
Saturday, April 21, 2012
![Page 61: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/61.jpg)
Django
Другая философияУ тебя есть инструменты для
простого решения задачи, но задачи (включая рутинные) ты будешь
решать сам.
Admin App
Saturday, April 21, 2012
![Page 62: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/62.jpg)
Django
Другая философияУ тебя есть инструменты для
простого решения задачи, но задачи (включая рутинные) ты будешь
решать сам.
Admin App Model Form
Saturday, April 21, 2012
![Page 63: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/63.jpg)
Django
Другая философияУ тебя есть инструменты для
простого решения задачи, но задачи (включая рутинные) ты будешь
решать сам.
Admin App Model Form Generic Views
Saturday, April 21, 2012
![Page 64: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/64.jpg)
Yii
Gii + giix
yiic shell generators
Saturday, April 21, 2012
![Page 65: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/65.jpg)
Yii
Gii + giix
yiic shell generators генерация модели
CRUD/Scaffold
Saturday, April 21, 2012
![Page 66: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/66.jpg)
Yii
Gii + giix supersedes yiic generators
web-based code generation
yiic shell generators генерация модели
CRUD/Scaffold
Saturday, April 21, 2012
![Page 67: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/67.jpg)
Symfony2
app/console
Saturday, April 21, 2012
![Page 68: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/68.jpg)
Symfony2
app/console
Создан на базе (замечательного) компонента Console
Легко создавать расширения
Отличная поддержка Doctrine2
CRUD, Entities, Entity, Form
Assets (styles, scripts) management
Saturday, April 21, 2012
![Page 69: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/69.jpg)
CakePHP
cake bake
cake schema
Good interactive shells
Bakes Models, View, Controllers, Fixtures, UTs
Генерация схемы для быстрого (повторого) развертывания.
cake i18n Генерация .pot файлов
Saturday, April 21, 2012
![Page 70: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/70.jpg)
CodeIgniter2
Saturday, April 21, 2012
![Page 71: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/71.jpg)
Кодогенерация в ZF1Saturday, April 21, 2012
![Page 72: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/72.jpg)
Zend_Tool_Framework
Действительно целый фреймворк
Manifest & MetaDataProviders
CLI Handling Loaders
Registry
Saturday, April 21, 2012
![Page 73: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/73.jpg)
Zend_Tool_Framework
Действительно целый фреймворк
Manifest & MetaDataProviders
CLI Handling Loaders
RegistryTriumph of
over-engineering!
Saturday, April 21, 2012
![Page 74: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/74.jpg)
Zend_Tool_Project
Куча провайдеров код которых будет использован
Module Controller DbTableViewProject
Saturday, April 21, 2012
![Page 75: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/75.jpg)
Zend_Tool_Project
Triumph of over-engineering!
Context
Stateful
Куча провайдеров код которых будет использован
Module Controller DbTableViewProject
Saturday, April 21, 2012
![Page 76: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/76.jpg)
Zend_Tool + zf.php
Фасад к Zend\Tool\Project\Provider
Management taks: on/off layout, show version, db adapter etc
Model, View, Controller, Action, Module, Form
zf action-name provider-name
Контекстная справка aka --help system
Saturday, April 21, 2012
![Page 77: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/77.jpg)
Zend_CodeGenerator
Генерация кода с использованием ОО-интерфейсов.
Refactored to Zend\Code\Generator
Планировался как general-purpose generator (SIC!!)
Good for what it is: PHP code generation
Saturday, April 21, 2012
![Page 78: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/78.jpg)
Zend_Reflection
Расширяет PHP Reflection Refactored to Zend\Code\Reflection
Интроспеция файлов Анализ docblock-comments
Saturday, April 21, 2012
![Page 79: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/79.jpg)
Кодогенерация в ZF2Saturday, April 21, 2012
![Page 80: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/80.jpg)
Текущее состояние
Saturday, April 21, 2012
![Page 81: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/81.jpg)
Текущее состояние
Zend\Tool
Saturday, April 21, 2012
![Page 82: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/82.jpg)
Текущее состояние
Zend\Tool
Saturday, April 21, 2012
![Page 83: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/83.jpg)
Текущее состояние
Zend\Tool
Zend\Tool\Project\Provider
Zend\Tool\Framework\System\Provider
Saturday, April 21, 2012
![Page 84: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/84.jpg)
Текущее состояние
Zend\Tool
Zend\Tool\Project\Provider
Zend\Tool\Framework\System\Provider Zf2Tool module
Saturday, April 21, 2012
![Page 85: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/85.jpg)
Текущее состояние
Zend\Tool
Zend\Tool\Project\Provider
Zend\Tool\Framework\System\Provider Zf2Tool module
Zend\Console Zend\Code
Saturday, April 21, 2012
![Page 86: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/86.jpg)
Zend\Console
/Thinkscape/zf2-console-sandbox
/Thinkscape/zf2/tree/feature/console
Saturday, April 21, 2012
![Page 87: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/87.jpg)
Zend\Console
/Thinkscape/zf2-console-sandbox
/Thinkscape/zf2/tree/feature/console
Routing Requests Adapters
Saturday, April 21, 2012
![Page 88: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/88.jpg)
Zend\Code
Zend_CodeGenerator
Zend_Reflection
Saturday, April 21, 2012
![Page 89: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/89.jpg)
Zend\Code
Zend_CodeGenerator
Zend_Reflection
Saturday, April 21, 2012
![Page 90: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/90.jpg)
Zend\Code
ReflectionZend_CodeGenerator
Zend_Reflection
Saturday, April 21, 2012
![Page 91: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/91.jpg)
Zend\Code
ReflectionZend_CodeGenerator
Zend_Reflection Scanner
Saturday, April 21, 2012
![Page 92: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/92.jpg)
Zend\Code
ReflectionZend_CodeGenerator
Zend_Reflection Scanner
Annotation
Saturday, April 21, 2012
![Page 93: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/93.jpg)
Zend\Code
ReflectionZend_CodeGenerator
Zend_Reflection
Generator
Scanner
Annotation
Saturday, April 21, 2012
![Page 94: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/94.jpg)
zf2.php tool ???Saturday, April 21, 2012
![Page 95: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/95.jpg)
zf2.php tool ???
RFC - Tool 2.0
Saturday, April 21, 2012
![Page 96: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/96.jpg)
zf2.php tool ???
RFC - Tool 2.0 Будет активно обновляться
Saturday, April 21, 2012
![Page 97: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/97.jpg)
zf2.php tool ???
RFC - Tool 2.0
Tabled on last IRC meeting
Thread in ML - go, write your opinion!!
Будет активно обновляться
Saturday, April 21, 2012
![Page 98: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/98.jpg)
zf2.php tool ???
RFC - Tool 2.0
Tabled on last IRC meeting
Thread in ML - go, write your opinion!!
Ожидается дискуссия
Будет активно обновляться
Saturday, April 21, 2012
![Page 99: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/99.jpg)
zf2.php tool ???
RFC - Tool 2.0
Часть модуля Zf2Tool
Tabled on last IRC meeting
Thread in ML - go, write your opinion!!
Ожидается дискуссия
Будет активно обновляться
Saturday, April 21, 2012
![Page 100: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/100.jpg)
zf2.php tool ???
RFC - Tool 2.0
Часть модуля Zf2Tool
Tabled on last IRC meeting
Thread in ML - go, write your opinion!!
Ожидается дискуссия
How to package?
Будет активно обновляться
Saturday, April 21, 2012
![Page 101: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/101.jpg)
Yada, yada (closing thoughts)
Saturday, April 21, 2012
![Page 102: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/102.jpg)
3 things to take home..
Saturday, April 21, 2012
![Page 103: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/103.jpg)
3 things to take home..
Give the proper respect to hand-coding
Saturday, April 21, 2012
![Page 104: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/104.jpg)
3 things to take home..
Give the proper respect to hand-coding
Don’t be afraid of automatic code generation
Saturday, April 21, 2012
![Page 105: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/105.jpg)
3 things to take home..
Give the proper respect to hand-coding
Don’t be afraid of automatic code generation
Define and constantly improve your toolset
Saturday, April 21, 2012
![Page 106: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/106.jpg)
И последнее:
Contribute to ZF2
+100 Karma +100500 Skill +100 FUN
/zendframework/zf2
Saturday, April 21, 2012
![Page 107: Code Generation in ZF2](https://reader038.fdocuments.net/reader038/viewer/2022103018/5594352d1a28ab8a1a8b4707/html5/thumbnails/107.jpg)
Thanks!
/farazdagi
@farazdagi
Saturday, April 21, 2012