Yii2   Что нового?             Александр Макаров,                    Yii core team
Немного статистики
Кто использует Yii?
*интранет
2   2
Почему?
1.Баланс2.Стабильность3.Гибкость4.Документация
События 2011 — начала 2012
Что же произошло?• 5 стабильных версий    • Окончательно вылезли  Yii 1.1                  из «подполья»:• Yii 1.1 Applica...
За два первые дня—348 watches—61 forks
Сейчас—1134 watches—240 forks
Yii 1.1.11 будет интересным ;)
Что плохо в Yii 1.1?• AR (finder и record не разделены, API).• Некоторые классы в странных местах.• Куча мелочей.     Само...
*              *                 *       *                                          2004       2005   2006   2007       2...
Команда Yii 2—3 активных core-разработчика: qiang, samdark, mdomba.—github.
—PHP 5.3.8+               —Улучшаем структуру—Все классы в             —Убиваем лишние namespace (yii) и без    сущности п...
Документация—Larry Ullman, автор 22-х отличных IT-книг и серии статей про Yii: книга + участие в официальной документации....
Yii2: base— Алиасы вида           class MyComponent extends  @yii/base/Component   yiibaseObject                        {—...
Yii2: View Object         — render(), widget(),           beginCache() →           viewObject         — В View: $owner = т...
Yii2: events$post->on(add,          • Не нужна декларацияfunction($event) { ...    • Синтаксис похож на});                ...
Yii2: Query object// Query object$query = new Query;$query->select(id)->from(tbl_customer)->limit(10);$command = $db->crea...
Yii2: AR$customer = Customer::find(2)   – Finder / Model       ->active()               – Можно сделать свой       ->one()...
Yii2: AR$postFinder = Post::find()       – Criteria  ->where(array(                 – Можно мёржить finder    active => tr...
Yii2: AR– tableName(),                            class Customer extends ActiveRecord {                                   ...
Yii2: AR$customers =                 $customers =Customer::find()->           Customer::find()->active()asArray()->all(); ...
TODO (если успеем)•   HTTP (CURL) wrapper    • Виджеты на базе•   Package manager          jQueryUI•   Mailer             ...
1 или 2?Ждите, но работайте на стабильном.
Когда?До альфы на github       •   Базу для кешанужно доделать, как      •   Базу для i18nминимум, вот эти штуки   •   Con...
Что почитать?—http://www.yiiframework.co m/forum/index.php/forum/4 2-design-discussions-for-yii- 20/
Вопросы?yiiframework.com yiiframework.ru   rmcreative.ru
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
YiiConf 2012 - Alexander Makarov - Yii2, что нового
Upcoming SlideShare
Loading in...5
×

YiiConf 2012 - Alexander Makarov - Yii2, что нового

18,964

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
18,964
On Slideshare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

YiiConf 2012 - Alexander Makarov - Yii2, что нового

  1. 1. Yii2 Что нового? Александр Макаров, Yii core team
  2. 2. Немного статистики
  3. 3. Кто использует Yii?
  4. 4. *интранет
  5. 5. 2 2
  6. 6. Почему?
  7. 7. 1.Баланс2.Стабильность3.Гибкость4.Документация
  8. 8. События 2011 — начала 2012
  9. 9. Что же произошло?• 5 стабильных версий • Окончательно вылезли Yii 1.1 из «подполья»:• Yii 1.1 Application – Yii beer party Development Cookbook – YiiTalk• Yii for Eclipse PDT, – YiiConf CodeLobster• Yii → GitHub
  10. 10. За два первые дня—348 watches—61 forks
  11. 11. Сейчас—1134 watches—240 forks
  12. 12. Yii 1.1.11 будет интересным ;)
  13. 13. Что плохо в Yii 1.1?• AR (finder и record не разделены, API).• Некоторые классы в странных местах.• Куча мелочей. Самое страшное — BC
  14. 14. * * * * 2004 2005 2006 2007 2008 2011 Prado, с 2004 → Yii 1.0, 2008 → Yii 1.1, 2010
  15. 15. Команда Yii 2—3 активных core-разработчика: qiang, samdark, mdomba.—github.
  16. 16. —PHP 5.3.8+ —Улучшаем структуру—Все классы в —Убиваем лишние namespace (yii) и без сущности префикса —Сохраняем плюсы—PSR-0 v2
  17. 17. Документация—Larry Ullman, автор 22-х отличных IT-книг и серии статей про Yii: книга + участие в официальной документации.—API не хуже 1.1.—Code style.—Есть план сделать тулзу для генерации API применимой к пользовательским приложениям… или вообще убить перегенерацию.
  18. 18. Yii2: base— Алиасы вида class MyComponent extends @yii/base/Component yiibaseObject {— CComponent → public $x; Object + Component public function __construct($a, $b)— SPL вместо { большинства //… коллекций } }— Убит CFormModel в пользу Model $component = MyComponent::newInstance( array(x=>10), a, b );
  19. 19. Yii2: View Object — render(), widget(), beginCache() → viewObject — В View: $owner = тот, кто запустил метод — $this = View. — Не нужны renderer. — Можно использовать в консоли. — CHtml никуда не делся.
  20. 20. Yii2: events$post->on(add, • Не нужна декларацияfunction($event) { ... • Синтаксис похож на}); jQuery • Behavior-ы заменят$post->trigger(add, фильтрыnew Event($this));$post->off(add,$callback);$handlers = $post->getEventHandlers(add);
  21. 21. Yii2: Query object// 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,));
  22. 22. Yii2: AR$customer = Customer::find(2) – Finder / Model ->active() – Можно сделать свой ->one(); finder$customer->name = Qiang; – ::model()$customer->save(); – Автокавычки.$customers = Customer::find() – Method chains. ->order(id) ->asArray(true) ->all();
  23. 23. Yii2: AR$postFinder = Post::find() – Criteria ->where(array( – Можно мёржить finder active => true – Можно дополнять)); условия на ходуif($isPrivate) { $postFinder->addWhere(array( createdBy => $userId, ));}$posts = $postFinder ->mergeWith($anotherFinder) ->all();
  24. 24. Yii2: AR– tableName(), class Customer extends ActiveRecord { const STATUS_ACTIVE = 1; relations(), scopes() = public static function tableName() { static. return tbl_customer;– Связи HAS_ONE, } HAS_MANY. public static function relations() { return array(– link = FKs orders:Order[] => array(– via = through link => array(customer_id => id),– Анонимки для ), ); scopes. }– Токены "@." и "?. public static function scopes() { return array( Автоалиас. Своя active => function($q) { таблица. Внешняя return $q- >andWhere(@.`status` = . self::STATUS_ACTIVE); таблица. }, ); } }
  25. 25. Yii2: AR$customers = $customers =Customer::find()-> Customer::find()->active()asArray()->all(); ->all();foreach (Customer::find() $customers =as $customer) Customer::find() ->where(name like :name,$count = Customer::count() array(->value(); :name => %customer%‘ ))->order(id)->all();
  26. 26. TODO (если успеем)• HTTP (CURL) wrapper • Виджеты на базе• Package manager jQueryUI• Mailer • Коммерческая• Twitter Bootstrap поддержка• Debug toolbar• Console requirements• More helpers
  27. 27. 1 или 2?Ждите, но работайте на стабильном.
  28. 28. Когда?До альфы на github • Базу для кешанужно доделать, как • Базу для i18nминимум, вот эти штуки • Controller + webapp→ • Базу для виджетов • URL manager
  29. 29. Что почитать?—http://www.yiiframework.co m/forum/index.php/forum/4 2-design-discussions-for-yii- 20/
  30. 30. Вопросы?yiiframework.com yiiframework.ru rmcreative.ru
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×