UWDC'12, Александр Макаров, Yii, его разработка и Yii2

Alexander Makarov
Alexander MakarovEngineer at Yii core team
Yii, его разработка и Yii2



               Александр Макаров,
                      Yii core team
Случайно зашли, а тут про…




  Собираетесь сбежать?
   Просто запомните →
= спасение в суровом мире PHP ;)
Что такое Yii?
PHP5 MVC.            Мощный кэш.
Красивый API.        RBAC, авторизация.
DAO, AR, миграции.   Консоль.
Работа с формами.    error handler, log.
Темы.
                      Gii.
Тест-фреймворк.
                      I18n на основе CLDR.
Документация.
                      Виджеты.
Сообщество.
UWDC'12, Александр Макаров, Yii, его разработка и Yii2
Немного статистики
UWDC'12, Александр Макаров, Yii, его разработка и Yii2
UWDC'12, Александр Макаров, Yii, его разработка и Yii2
Кто использует Yii?
В России и СНГ
В России и СНГ


*интранет
В мире
В мире


Интранет:
FIFA, ERGO, holchim,
Astrazeneca
OpenSource




   2         2
Историческая справка
*
              *                 *



       *



2004       2005   2006   2007       2008   2011




 Prado, с 2004 → Yii 1.0, 2008 → Yii 1.1, 2010
Команда Yii
—7 core-разработчиов.
—Около 20 активных контрибьютеров.
—~50 переводчиков.

Приоритеты:
—Стабильность кода.
—Надёжность кода.
—Единый стиль.
Почему BSD?
—Фреймворк — инструмент.
—Чтобы код «жил» его должны серьёзно
 использовать.
—Серьёзно = для получения прибыли.
—BSD не ограничивает коммерческое
 использование.
Документация
—Код без документации — мусор.
—Пишем код — обновляем документацию.
—Всегда сразу документируем методы,
 классы и свойства.
—Важны примеры, но слишком много
 примеров — тоже плохо.
Как «зацепить» разработчика
—Простые приложения
—Блог за пару часов
—AR
—Крутые штуки из коробки
—Проекты в портфолио
Как не разочаровать разработчика?
—Базового фреймворка всегда мало → не
 обещать золотых гор (RoR)
—В сложных проектах больше
 индивидуальности → сделать хорошую
 базу, не мешать
—Дать возможность участия
UWDC'12, Александр Макаров, Yii, его разработка и Yii2
За два первые дня
—31 pull-
 request
—348 watches
—61 forks
Интересные факты
—Многие отличные разработчики не
 пользуются форумом
—Многие не хотят помогать проекту так как
 процесс неудобен
—Сообщество — сила!
О командной работе
• Меньше народу, больше кислороду? Только
  без правильных инструментов.
• Без документации не жизнь. Flow тоже
  надо документировать.
• Структура помогает. Инструменты спасают.
Что плохо в Yii 1.1?
• AR (finder и record не разделены, API).
• CHtml. Статика.
• Некоторые классы в странных местах.




     Самое страшное —
                               BC
Yii2
—PHP 5.3.8+                —Лишнее в пакеты
—Все классы в              —Улучшаем структуру
 namespace (yii) и без     —Сохраняем плюсы
 префикса                  —Немного другой стиль
—PSR-0                      кода
—Пакеты Composer



                                     v2
Yii2: base
— Алиасы вида           class MyComponent extends
                        yiibaseComponent {
  @yii/base/Component
                          public $x;
— CComponent →            public function __construct($a, $b){
  Object + Component          //…
— SPL вместо              }
  большинства           }
  коллекций
                        $component = MyComponent::newInstance(
— Убит CFormModel в       array('x'=>10),
  пользу Model            'a', 'b'
                        );
Yii2: Query object
Criteria мигрировал из AR в DAO:
// Query object
$query = new Query;
$query->select('id')->from('tbl_customer')->limit(10);
$command = $db->createCommand($query);
$this->assertEquals("SELECT `id` FROM `tbl_customer`
LIMIT 10", $command->sql);

// array
$command = $db->createCommand(array(
       'select' => 'name',
       'from' => 'tbl_customer',
));
Yii2: AR
$customer = Customer::find(2)   – Auto quotes
       ->active()               – Finder / Model
       ->one();
                                – Method chains
$customer->name = 'Qiang';
$customer->save();              – CDbCriteria убит, вместо
                                  него Query с билдером
$customers = Customer::find()     внутри
       ->order('id')            – Уберём анонимные
       ->asArray(true)            параметры
       ->all();
Yii1 или Yii2?



Работайте на стабильном. Не ждите.
Что почитать?
—Официальный гайд
—Learning Yii, Larry Ulman
—Туториал по созданию блога
—Yii 1.1 Application Development
 Cookbook
—Блоги
—Хабр
Вопросы?


yiiframework.com
 yiiframework.ru
   rmcreative.ru
1 of 33

Recommended

Роман Еникеев - PHP или откуда взялся слон by
Роман Еникеев - PHP или откуда взялся слонРоман Еникеев - PHP или откуда взялся слон
Роман Еникеев - PHP или откуда взялся слонDataArt
699 views40 slides
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013) by
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)
Павел Павлов - Scala для Java программистов (JavaDay Nsk 28.11.2013)ScalaNsk
1K views78 slides
Павел Павлов - Scala для профессионалов - Joker 2013 by
Павел Павлов - Scala для профессионалов - Joker 2013Павел Павлов - Scala для профессионалов - Joker 2013
Павел Павлов - Scala для профессионалов - Joker 2013ScalaNsk
1.5K views114 slides
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St... by
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
4.6K views47 slides
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир... by
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
1.6K views21 slides
Models for hierarchical data by
Models for hierarchical dataModels for hierarchical data
Models for hierarchical dataKarwin Software Solutions LLC
371.2K views91 slides

More Related Content

Similar to UWDC'12, Александр Макаров, Yii, его разработка и Yii2

Yii 2. Что нового? by
Yii 2. Что нового?Yii 2. Что нового?
Yii 2. Что нового?yiiconf
7.6K views35 slides
UWDC 2013, Yii2 by
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2Alexander Makarov
4K views42 slides
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii by
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
1.6K views24 slides
Как разраба by
Как разрабаКак разраба
Как разрабаAlexander Makarov
1.4K views27 slides
CodeFest 2011. Макаров А. — Как разрабатывается Yii by
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest
538 views27 slides
SECON'2016. Чубарь Алексей, Мобильные грабли Unity by
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON
265 views66 slides

Similar to UWDC'12, Александр Макаров, Yii, его разработка и Yii2(20)

Yii 2. Что нового? by yiiconf
Yii 2. Что нового?Yii 2. Что нового?
Yii 2. Что нового?
yiiconf7.6K views
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii by Alexander Makarov
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Alexander Makarov1.6K views
CodeFest 2011. Макаров А. — Как разрабатывается Yii by CodeFest
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest538 views
SECON'2016. Чубарь Алексей, Мобильные грабли Unity by SECON
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON265 views
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08 by Vladislav Morgun
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Vladislav Morgun985 views
Владислав Моргун by SEO.UA
Владислав МоргунВладислав Моргун
Владислав Моргун
SEO.UA145 views
Yii PHP framework: basics, techniques and some inside info by seleckis
Yii PHP framework: basics, techniques and some inside infoYii PHP framework: basics, techniques and some inside info
Yii PHP framework: basics, techniques and some inside info
seleckis489 views
Alexandr Makarov - PHP framework Yii by Arvids Godjuks
Alexandr Makarov - PHP framework YiiAlexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework Yii
Arvids Godjuks588 views
александр макаров Yii Rit 2010 by rit2010
александр макаров Yii Rit 2010александр макаров Yii Rit 2010
александр макаров Yii Rit 2010
rit2010457 views
UWDC 2013, Как мы используем Yii by Alexander Makarov
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем Yii
Alexander Makarov4.4K views
Современные платформы (фреймворки) разработки веб- приложений на PHP by Magecom Ukraine
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
Magecom Ukraine1.6K views
Modules and assembling of JavaScript (in russian) by Mikhail Davydov
Modules and assembling of JavaScript (in russian)Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)
Mikhail Davydov966 views
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р... by Mail.ru Group
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Mail.ru Group1.7K views
Александр Фокин, Рефлексия в C++ by Sergey Platonov
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++
Sergey Platonov1.6K views
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro) by Symfoniacs
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Symfoniacs965 views
Расширенное кеширование в Doctrine2 by Ilyas Salikhov
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2
Ilyas Salikhov2.3K views

UWDC'12, Александр Макаров, Yii, его разработка и Yii2

  • 1. Yii, его разработка и Yii2 Александр Макаров, Yii core team
  • 2. Случайно зашли, а тут про… Собираетесь сбежать? Просто запомните →
  • 3. = спасение в суровом мире PHP ;)
  • 4. Что такое Yii? PHP5 MVC. Мощный кэш. Красивый API. RBAC, авторизация. DAO, AR, миграции. Консоль. Работа с формами. error handler, log. Темы. Gii. Тест-фреймворк. I18n на основе CLDR. Документация. Виджеты. Сообщество.
  • 11. В России и СНГ *интранет
  • 14. OpenSource 2 2
  • 16. * * * * 2004 2005 2006 2007 2008 2011 Prado, с 2004 → Yii 1.0, 2008 → Yii 1.1, 2010
  • 17. Команда Yii —7 core-разработчиов. —Около 20 активных контрибьютеров. —~50 переводчиков. Приоритеты: —Стабильность кода. —Надёжность кода. —Единый стиль.
  • 18. Почему BSD? —Фреймворк — инструмент. —Чтобы код «жил» его должны серьёзно использовать. —Серьёзно = для получения прибыли. —BSD не ограничивает коммерческое использование.
  • 19. Документация —Код без документации — мусор. —Пишем код — обновляем документацию. —Всегда сразу документируем методы, классы и свойства. —Важны примеры, но слишком много примеров — тоже плохо.
  • 20. Как «зацепить» разработчика —Простые приложения —Блог за пару часов —AR —Крутые штуки из коробки —Проекты в портфолио
  • 21. Как не разочаровать разработчика? —Базового фреймворка всегда мало → не обещать золотых гор (RoR) —В сложных проектах больше индивидуальности → сделать хорошую базу, не мешать —Дать возможность участия
  • 23. За два первые дня —31 pull- request —348 watches —61 forks
  • 24. Интересные факты —Многие отличные разработчики не пользуются форумом —Многие не хотят помогать проекту так как процесс неудобен —Сообщество — сила!
  • 25. О командной работе • Меньше народу, больше кислороду? Только без правильных инструментов. • Без документации не жизнь. Flow тоже надо документировать. • Структура помогает. Инструменты спасают.
  • 26. Что плохо в Yii 1.1? • AR (finder и record не разделены, API). • CHtml. Статика. • Некоторые классы в странных местах. Самое страшное — BC
  • 27. Yii2 —PHP 5.3.8+ —Лишнее в пакеты —Все классы в —Улучшаем структуру namespace (yii) и без —Сохраняем плюсы префикса —Немного другой стиль —PSR-0 кода —Пакеты Composer v2
  • 28. Yii2: base — Алиасы вида class MyComponent extends yiibaseComponent { @yii/base/Component public $x; — CComponent → public function __construct($a, $b){ Object + Component //… — SPL вместо } большинства } коллекций $component = MyComponent::newInstance( — Убит CFormModel в array('x'=>10), пользу Model 'a', 'b' );
  • 29. Yii2: Query object Criteria мигрировал из AR в DAO: // Query object $query = new Query; $query->select('id')->from('tbl_customer')->limit(10); $command = $db->createCommand($query); $this->assertEquals("SELECT `id` FROM `tbl_customer` LIMIT 10", $command->sql); // array $command = $db->createCommand(array( 'select' => 'name', 'from' => 'tbl_customer', ));
  • 30. Yii2: AR $customer = Customer::find(2) – Auto quotes ->active() – Finder / Model ->one(); – Method chains $customer->name = 'Qiang'; $customer->save(); – CDbCriteria убит, вместо него Query с билдером $customers = Customer::find() внутри ->order('id') – Уберём анонимные ->asArray(true) параметры ->all();
  • 31. Yii1 или Yii2? Работайте на стабильном. Не ждите.
  • 32. Что почитать? —Официальный гайд —Learning Yii, Larry Ulman —Туториал по созданию блога —Yii 1.1 Application Development Cookbook —Блоги —Хабр