SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Yii, его разработка и Yii2



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




  Собираетесь сбежать?
   Просто запомните →
= спасение в суровом мире PHP ;)
Что такое Yii?
PHP5 MVC.            Мощный кэш.
Красивый API.        RBAC, авторизация.
DAO, AR, миграции.   Консоль.
Работа с формами.    error handler, log.
Темы.
                      Gii.
Тест-фреймворк.
                      I18n на основе CLDR.
Документация.
                      Виджеты.
Сообщество.
Немного статистики
Кто использует 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)
—В сложных проектах больше
 индивидуальности → сделать хорошую
 базу, не мешать
—Дать возможность участия
За два первые дня
—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

Más contenido relacionado

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

Yii 2. Что нового?
Yii 2. Что нового?Yii 2. Что нового?
Yii 2. Что нового?yiiconf
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON
 
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08Vladislav Morgun
 
Владислав Моргун
Владислав МоргунВладислав Моргун
Владислав МоргунSEO.UA
 
Alexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiAlexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiArvids Godjuks
 
Yii PHP framework: basics, techniques and some inside info
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 infoseleckis
 
александр макаров Yii Rit 2010
александр макаров Yii Rit 2010александр макаров Yii Rit 2010
александр макаров Yii Rit 2010rit2010
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiAlexander Makarov
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Magecom Ukraine
 
Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)Mikhail Davydov
 
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...Mail.ru Group
 
Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Sergey Platonov
 
Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Ilyas Salikhov
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Symfoniacs
 

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

Yii 2. Что нового?
Yii 2. Что нового?Yii 2. Что нового?
Yii 2. Что нового?
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 
Как разраба
Как разрабаКак разраба
Как разраба
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
 
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли UnitySECON'2016. Чубарь Алексей, Мобильные грабли Unity
SECON'2016. Чубарь Алексей, Мобильные грабли Unity
 
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
Автоматизация SEO-процессов в продуктовых компаниях - DVOMA.pro 30.08
 
Владислав Моргун
Владислав МоргунВладислав Моргун
Владислав Моргун
 
Alexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework YiiAlexandr Makarov - PHP framework Yii
Alexandr Makarov - PHP framework Yii
 
Yii PHP framework: basics, techniques and some inside info
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
 
php frameworks
php frameworksphp frameworks
php frameworks
 
александр макаров Yii Rit 2010
александр макаров Yii Rit 2010александр макаров Yii Rit 2010
александр макаров Yii Rit 2010
 
Yii rit 2010
Yii rit 2010Yii rit 2010
Yii rit 2010
 
UWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем YiiUWDC 2013, Как мы используем Yii
UWDC 2013, Как мы используем Yii
 
Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP Современные платформы (фреймворки) разработки веб- приложений на PHP
Современные платформы (фреймворки) разработки веб- приложений на PHP
 
Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)
 
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
Дмитрий Юницкий. «Android NDK или как я перестал бояться и полюбил нативную р...
 
Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++
 
Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2Расширенное кеширование в Doctrine2
Расширенное кеширование в Doctrine2
 
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
Расширенное кеширование Doctrine2 (Ильяс Салихов, Intaro)
 

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. Документация. Виджеты. Сообщество.
  • 5.
  • 7.
  • 8.
  • 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) —В сложных проектах больше индивидуальности → сделать хорошую базу, не мешать —Дать возможность участия
  • 22.
  • 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 —Блоги —Хабр