<rmcreative>

RSS

Насколько готов и когда выйдет Yii2

5 марта 2012

Этот вопрос задают очень часто, поэтому, чтобы не повторяться, официальный ответ.

Yii 2.0 сейчас довольно далёк от релиза. Продумываение, обсуждение и построение архитектуры требует очень много времени потому как мы не ограничиваемся переносом старого кода как есть.

Наш план таков:

  • Описать новые возможности (такие как новый AR, изменения в MVC) и получить фидбек.
  • Выложить код на github и получить ещё больше фидбека.
  • Пригласить сообщество помочь доделать то, что ещё не полностью готово в 2.0 (например, различные бэкенды для кеша, драйверы различных СУБД и т.д.).
  • Выпустить альфу как только все запланированные возможности будут готовы.
  • Выпустить бету после тщательного тестирования и исправления ошибок.
  • Выпустить один или несколько RC и, наконец, стабильный релиз.

Комментарии RSS

  1. №5981
    lemb
    lemb 05 марта 2012 г., 16:24:09

    Желаю вам по больше терпения.

    Благодарю вас за такой огромный и полезный труд!

  2. №5982
    evilbloodydemon
    evilbloodydemon 05 марта 2012 г., 16:28:43
    1. Collect underpants
    2. ?????
    3. PROFIT
  3. №5983
    MpaK
    MpaK 05 марта 2012 г., 17:12:13

    Что-нибудь из современного планируется: namespace, traits и т.п?

  4. №5984
    Sergey
    Sergey 05 марта 2012 г., 17:26:59

    Неймспейсы конечно будут (где-то на форуме проскакивало), да и грех их не использовать

    По поводу трейтов: РНР 5.3.8 кажется будет, так что трейты отменяются.

    Хотя, Александр, не мог бы в двух словах прокоментировать: думали ли core-team над использованием трейтов вместо behaviors (наверняка думали) и почему не хотите / не возможно это делать?

    Вот лично мне кажется с появлением треитов наличие еще и поведений от фреймворка каким-то нехорошим явлением...

  5. №5985
    Serge Bezborodov
    Serge Bezborodov 05 марта 2012 г., 18:11:44

    В подкасте Yii Talks Александр рассказывал, что будут использоваться бехейворы а не трейты, из-за определенных недостатков последних

  6. №5986
    Sam
    Sam 05 марта 2012 г., 18:38:30

    Верно. Трейтов не будет потому как PHP 5.3. Их, как единственную большую фичу PHP 5.4, мы, конечно, рассматривали и пришли к выводу, что заменить behavior ими не выйдет потому как:

    1. trait нельзя сконфигурировать.
    2. У trait-а не может быть переменных (на самом деле могут быть, но штука не вполне документирована и её, возможно, выпилят, если ещё не выпилили).
    3. У trait-а не может быть private методов. При подключении основной класс будет сильно замусориваться, скорее всего будут коллизии.
  7. №5987
    Sergey
    Sergey 05 марта 2012 г., 19:21:33

    спасибо за пояснение

    1. действительно. это, наверное, ключевой момент

    2. вполне документировано http://php.net/manual/en/language.oop5.traits.php

      Traits can also define properties. If a trait defines a property then a class can not define a property with the same name, otherwise an error is issued. It is an E_STRICT if the class definition is compatible (same visibility and initial value) or fatal error otherwise.

    3. ну здесь можно было бы делать АПИ интерфейс трейта минимальным необходимым, а всякое private выносить в отдельный класс, который вызывался бы трейтом (это на вскидку, не знаю на сколько возможно, сам еще на практике трейты не использовал)

    Пункт 1 тоже можно попытаться обойти конфигурацией самого класса, куда мы несем функционал, вместо кинфигурации трейта, но это будет неудобно по сравнению с behavior...

    Все, теперь и мне 5.3 кажется лучшим выбором для Yii2 )

  8. №5989
    webs
    webs 05 марта 2012 г., 22:11:48

    Главное что бы не получился совсем другой фреймворк(похожий) с его новыми несовместимостями(пугает > изменения в MVC) ).

  9. №5990
    dclg
    dclg 05 марта 2012 г., 22:21:53

    Удачи. Жду с нетерпением, если честно, но понимаю что ждать еще долго :(

  10. №5991
    bettrrr
    bettrrr 05 марта 2012 г., 23:57:25

    А что в MVC поменается?

  11. №5992
    Dmitry
    Dmitry 06 марта 2012 г., 0:01:04

    Спасибо вам :) и удачи :) А вообще, в таком случае хотелось бы скорее услышать ответ на вопрос: Как долго еще точно не выйдет Yii2?

  12. №5993
    Александр
    Александр 06 марта 2012 г., 0:12:11

    Скажите, будет ли реализован полноценный View? Под полноценным View я подразумеваю, как минимум, компонент.

  13. №5994
    Sam
    Sam 06 марта 2012 г., 0:46:37

    bettrrr, пока рано об этом говорить.

    Dmitry, если вопрос в том, начинать ли проект на Yii 1.1, то да, начинать.

    Александр, что именно этот компонент должен делать?

  14. №5995
    NickSun
    NickSun 06 марта 2012 г., 1:02:36

    Sam, а есть в планах сделать поддержку ACL для CMenu и CForm/CActiveForm типа как в ZF?

  15. №5996
    Sam
    Sam 06 марта 2012 г., 1:03:53

    NickSun, а как в ZF?

  16. №5998
    NickSun
    NickSun 06 марта 2012 г., 1:12:29

    Передаю набор правил ACL в Zend_Navigation. Далее, если у меня 10 ролей с различным доступом, то ZF согласно этим правилам для каждой роли выводит те или иные пункты меню. Для форм не совсем так гладко, но все же есть возможность при построении формы проверить право доступа (это буквально одно условие if для каждого элемента формы) и соответственно добавить элемент к форме. В результате получаем что пользователь видит/может редактировать только что "положено" :)

  17. №6000
    NickSun
    NickSun 06 марта 2012 г., 1:20:27

    На практике для всех меню, дело решается двумя строчками (например в плагине): Zend_View_Helper_Navigation_HelperAbstract ::setDefaultAcl(Zend_Acl $acl); Zend_View_Helper_Navigation_HelperAbstract ::setDefaultRole($role); Далее наслаждаемся результатом :)

  18. №6001
    Sam
    Sam 06 марта 2012 г., 1:21:55

    В CMenu::items есть visible. Это как раз подходящее место для проверки. В Yii нет чёткой привязки роли к действию контроллера, поэтому на автомате делать такое выйдет только в пределах одного приложения следуя каким-то соглашениям.

    CActiveForm вроде тоже с if-ом работать умеет :)

  19. №6002
    NickSun
    NickSun 06 марта 2012 г., 1:30:10

    Да,я в курсе про visible, и про if для форм :) Мне просто нравится реализация ZF для меню. Уж очень удобно оно у них получилось.

  20. №6003
    Sam
    Sam 06 марта 2012 г., 1:51:07

    Будет время, гляну плотнее. За наводку на удобную реализацию спасибо.

  21. №6004
    Александр
    Александр 06 марта 2012 г., 2:52:49

    http://goo.gl/OZFfk - вот, например, здесь хорошо показаны обращения контроллера к этому компоненту (View).

    Объект Представления (View), который вызывает методы, специфичные для Представления (View): метод loadI18n() с помощью которого в Представление (View) подгружаются файлы интернационализации, а так же метод initTitle(), формирующий title HTML-страницы на основе данных, полученных в ходе парсинга файлов интернационализации.

    Это, по-моему, тоже в Zend. А сейчас файлы View - это и шаблоны, и вызов методов. Не труЪ как-то. Да и неудобно очень верстальщикам. Разумеется, можно разделить контроллер и представление "руками", т.е. самостоятельно, но хотелось бы, чтобы любимый фреймворк предоставлял данный функционал из коробки.

  22. №6010
    Sam
    Sam 06 марта 2012 г., 16:40:45

    Пример неудачный. В Yii сейчас хоть и не «труЪ», но левых вызовов вроде передачи i18n в View или десятка длинных присвоений переменных нет. Однако, такой класс может найти себе место в Yii2. Зависит от того, как мы поступим с CHtml.

  23. №6016
    funivan
    funivan 07 марта 2012 г., 11:32:44

    Yii классный фреймворк. Я считаю одним из особенностей фреймворка должна быть загрузка контроллеров через кастомний автолоад, так как class map не очень удачная реализация для больших проектов и структура не всегда подходить. Да возможность использовать модули есть но через них больше итераций. Еще раз спасибо за прекрасный фреймворк.

  24. №6017
    Владимир
    Владимир 07 марта 2012 г., 12:38:01

    Спасибо, хорошая новость. Теперь понятен порядок дней, до выхода Yii2:) Yii очень удачен - этому свидетельствует быстрый рост его популярности, желаю чтобы Yii2 был еще успешней!

    Жалко только одно: Yii не развивается, так как, насколько я понял, все силы брошены на Yii2. Понимаю, надо еще работать, чтобы зарабатывать деньги.

    Вот такой вопрос: а если вам организовать фонд помощи или пожертвований? Я бы с удовольствием регулярно переводил небольшие суммы. Может это добавить свободного времени разработчикам и ускорит выход Yii2? :)

  25. №6018
    Sam
    Sam 07 марта 2012 г., 13:31:12

    Владимир, Yii ещё как развивается. Загляните на github. Пожертвования, конечно, дело хорошее, но пока в финансовом плане у нас всё хорошо, да и времени ровно столько, чтобы нормально продумывать, а не лететь сломя голову. За готовность помочь спасибо, приятно.

  26. №6019
    croupier
    croupier 08 марта 2012 г., 16:42:27

    Только начал разбираться с yii и был сильно удивлён отсутствием функционала по работе в почтой. Я понимаю что комментарии, форум и прочее у всех могут быть разные и yii - фреймворк, а не цмс, но почта - это неотъемлемая часть любого вебприложения. Работа с ней должна быть на уровне ядра чтобы все расширения делали всё одинаково и были механизмы по контролю/перехвату/изменению их действий. Поэтому мне бы очень хотелось, чтобы во второй версии либо появилась своя реализация, либо было принято за стандарт одно из уже существующих расширений, да можно хоть из zend взять. Спасибо.

  27. №6051
    igor
    igor 15 марта 2012 г., 1:54:01

    Ставь расширение для почты и пользуйся. Скачать можно с официального сайта

  28. №6052
    croupier
    croupier 15 марта 2012 г., 15:48:56

    igor, вот представьте, установил я некое стороннее расширение (не для почты), которое в процессе своей работы что-то там отправляет на почту юзерам. А меня не устраивает, например, текст, да токенов нет... Патчить код, а потом при каждом обновлении заново? Можно сделать по-правильному - расширить функционал, но если в другом расширении встретиться такая же проблема, а там своя "приблуда" для почты прикручена, разбираться и с ней? И т.д. А вот делали бы они все через api - было бы надёжней, безопасней и все бы знали как с этим работать.

  29. №6082
    Dr.Death
    Dr.Death 28 марта 2012 г., 12:01:17

    Хотелось бы чтобы наконец AR child->parent, стал 10c + 1p, а не 10с + 10p (одинаковых)

  30. №6085
    Sam
    Sam 29 марта 2012 г., 18:12:07

    Dr.Death, ???

  31. №6087
    Sergey
    Sergey 29 марта 2012 г., 18:24:32

    Sam, думаю имелось в виду введение identity map для AR объектов

  32. №6099
    Dr.Death
    Dr.Death 31 марта 2012 г., 21:09:35

    Sergey, судя по описанию оно и есть Sam, чтобы вызов $comment->post не дергал каждый раз post из базы ( речь не про with('post') ) и ссылался на один и тот же объект post, а не плодил близнецов для каждого comment

    не знаю может объясняю как то не так :)

  33. №6100
    Dr.Death
    Dr.Death 31 марта 2012 г., 21:44:17

    Кажется то что надо https://github.com/phpnode/YiiBlocks/tree/master/identitymap

  34. №6102
    Dr.Death
    Dr.Death 31 марта 2012 г., 22:41:37

    Похоже да не то, кол-во запросов в базу не уменьшилось...

  35. №6105
    Sam
    Sam 01 апр. 2012 г., 16:38:21

    Штука довольно спорная и может породить кучу нетривиальных ситуаций. Если и будет, то не сразу.

  36. №6107
    Dr.Death
    Dr.Death 01 апр. 2012 г., 16:42:01

    Мне кажется один объект размноженный по куче переменных быстрей натворит дел :)

  37. №6117
    Mirocow
    Mirocow 10 апр. 2012 г., 9:59:37

    Поддерживаю

  38. №6172
    halgerd
    halgerd 25 апр. 2012 г., 18:27:47

    Насколько совместимы будут версии? Будет ли возможность апгрейда проекта с YII на YII2?

  39. №6174
    Sam
    Sam 26 апр. 2012 г., 11:14:34

    halgerd, не сильно совместимы.

  40. №6175
    halgerd
    halgerd 26 апр. 2012 г., 11:22:00

    Sam, какая тогда польза от будет от нового релиза проектам на YII1?

  41. №6177
    Sam
    Sam 26 апр. 2012 г., 12:07:32

    Никакой.

  42. №7021
    Евгений
    Евгений 11 нояб. 2012 г., 15:39:48

    Сорри как изменились, дела после марта ? Уже ноябрь. Когда релиз ? :D

  43. №7025
    Sam
    Sam 12 нояб. 2012 г., 2:36:12

    Код изменился прилично, появилась куча новых идей, но до альфы всё-ещё далековато.

  44. №7757
    Николай
    Николай 01 апр. 2013 г., 17:00:38

    Можете забыть про Yii 2 он будет на руби

  45. №7759
    Dr.Death
    Dr.Death 01 апр. 2013 г., 17:07:58

    Ага, на бэйсике

  46. №7761
    Dr.Death
    Dr.Death 01 апр. 2013 г., 17:44:27

    У блин, а ведь правда, фу...

  47. №7762
    Dr.Death
    Dr.Death 01 апр. 2013 г., 17:45:10

    Блин, я паходу 2 раза дибил, гребанное 1 апреля, в интернете можно не сидеть

  48. №7808
    Олег
    Олег 12 апр. 2013 г., 22:09:49

    Можно сделать его, вообще, без view с заточкой на то, что все это будет на клиенте? Или хотя бы четко отделить, чтобы не таскать лишний код в сайты, где он не нужен.

  49. №7809
    Diablo
    Diablo 13 апр. 2013 г., 0:32:24

    View таки нужен всё таки :)

  50. №7810
    Олег
    Олег 13 апр. 2013 г., 10:56:29

    Сейчас нет фреймфорков, которые позиционируются как бэкэнд для аякс-сайтов, а все к этому идет. Было бы неплохо, если бы появились примеры взаимодействия yii 2 и angular.js, например

  51. №7815
    Sam
    Sam 15 апр. 2013 г., 1:09:22

    Олег, ничего сложного в взаимодействии вроде нет. Напишу как-нибудь про это.

  52. №7899
    Никита
    Никита 05 мая 2013 г., 1:24:49

    Будет ли возможно проапгрейдить Yii 1 до второй версии?

  53. №7902
    Sam
    Sam 05 мая 2013 г., 11:43:40

    Никита, код Yii2 доступен, смотрите сами.

  54. №7918
    Олег
    Олег 08 мая 2013 г., 6:10:32

    Отлично! Занимаюсь переводом документации AngularJS (angular.ru). С удовольствием размещу статью про взаимодействие AngularJS с Yii 2.

    И пожелание от меня (и многих фронтендщиков). Напишите, как выпилить из Yii 2 вид и всё что можно сделать на клиенте. Покажите, как сделать валидацию форм, регистрацию пользователей, взаимодействие с БД, т. е. базовые вещи, которые позволят быстро прикрутить Yii к клиентскому коду. Cейчас проще написать на чистом PHP, чем изучить фреймворк.

    Документация по Yii рассказывает КАК что-либо сделать, но ничего не говорит о том ЧТО можно сделать на этом фреймворке. Посмотрите на главную страницу AngularJS, где отлично показано на что способен фреймворк с примерами и исходниками. Причем, показаны примеры бизнес-задач, а не решения каких-то программистких проблем. Советую взять подход за основу.

  55. №7920
    Sam
    Sam 08 мая 2013 г., 15:55:10

    Олег, на фреймворке можно сделать всё, что угодно. Взаимодействие с AngularJS сводится к построению API. Демки у Yii также имеются.

  56. №7921
    Олег
    Олег 08 мая 2013 г., 23:03:23

    Вы безусловно молодцы, но документация очень далека от того, что привел выше. Уж сделать несколько хороших демок по регистрации пользователей, валидации форм, связи с БД, многоязычности, загрузке файлов и реал-тайм чату не столь сложно для профессионала Yii, зато сразу видно, что можно сделать + взять готовое решение, а не искать по всему инету, следовательно порог входа значительно ниже. В качестве демки по загрузке файлов, можете, кстати, переработать мой плагин: tamtakoe.ru/photoalbum/

  57. №7922
    Sam
    Sam 09 мая 2013 г., 14:44:10

    Олег, подумаем над примерами ближе к стабильному релизу. Пока их рано писать. API меняется.

  58. №8647
    Ivan
    Ivan 30 нояб. 2013 г., 22:42:02

    Sam 06.03.2012, 0:46:37 Dmitry, если вопрос в том, начинать ли проект на Yii 1.1, то да, начинать.

    Извините я немного запоздал с прогрессом... Все же интересно как сейчас дела обстоят, все еще можно начинать с 1.1 или стоит начинать потихоньку копать 2 ?

  59. №8648
    Sam
    Sam 01 дек. 2013 г., 0:43:18

    Вполне можно начинать с 1.1, но порыть 2.0 тоже можно.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.