<rmcreative>

RSS

Yii 2, public preview

4 мая 2013

Итак, код Yii2, который мы более двух лет пилили и перепиливали в закрытом режиме, выложен на github. Это большой шаг на пути к стабильному релизу, в подготовке которого вы теперь можете принять самое непосредственное участие.

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

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

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

  1. №7881
    Dr.Death
    Dr.Death 04 мая 2013 г., 12:57:58

    double encode запилите наконец то или теперь к старой версии php добавились новые отмазки? :)

  2. №7882
    Александр
    Александр 04 мая 2013 г., 13:03:30

    Большое спасибо!

    Предлагаю всем теоретикам по поводу "почему так, а не так" делать пуллы, а не троллить разработчиков свои домыслами и почемучками.

  3. №7883
    ifrinx
    ifrinx 04 мая 2013 г., 13:35:10

    Код стянул c github, уже смотрю что нового несет нам Yii2. Авторам спасибо за проделанный труд ;-)

  4. №7884
    Serge Bezborodov
    Serge Bezborodov 04 мая 2013 г., 13:44:19

    Друзья, спасибо за проделанную работу! Зы: О боже, опять htmlencode...

  5. №7885
    Александр
    Александр 04 мая 2013 г., 13:52:52

    А можно ожидаемое время выхода стабильной версии + документации?

  6. №7887
    XAKEPEHOK
    XAKEPEHOK 04 мая 2013 г., 15:02:57

    Может я плохо смотрел, но... а есть демки, вроде тех, что в поставке Yii 1.1 в папке demos? Просто я думаю, что было бы удобнее понять различия и самому начать ковыряться, если бы можно было увидеть скажем реализацию того же блога

  7. №7888
    nucleartux
    nucleartux 04 мая 2013 г., 15:14:37

    Позволю себе ответить. Демок пока нет, позже будут. В app есть работающее приложение, так же можно создать совсем маленькое приложение при помощи команды php yii2/framework/yiic.php app/create blog. Правда и она не совсем работает, пока :)

  8. №7889
    Dr.Death
    Dr.Death 04 мая 2013 г., 16:56:21

    Блин.... double encode то вкрутили тока не с тем значением по умолчанию... и толку...

  9. №7890
    Sam
    Sam 04 мая 2013 г., 18:11:35

    Александр, в самом лучшем случае к концу года, но обещать ничего не могу. Как доделаем. Документация будет появляться по ходу.

  10. №7891
    Mirocow
    Mirocow 04 мая 2013 г., 19:26:54

    Спасибо

  11. №7892
    Александр
    Александр 04 мая 2013 г., 19:56:56

    2 Dr.Death пожалуйста, не пишите по поводу htmlencode на каждом месте (форум, здесь и хабр). Такие высосанные проблемы из пальца только отвлекают разработчиков и других участников.

    Александр вам на форуме подробно все объяснил yiiframework.ru/forum/viewtopic.php?f=6&t=6347

  12. №7894
    Dr.Death
    Dr.Death 04 мая 2013 г., 22:20:58
    1. я как бы сам решу чего и где писать
    2. если у вас высосанная, то у меня насущная, которую я сам правлю в каждом обновлении
    3. проблема итого старая версия php, которая устранена, но косяк на месте
  13. №7895
    Sam
    Sam 04 мая 2013 г., 22:40:10

    Александр, основные штуки, которые мешали, как раз были версия PHP и обратная совместимость. В Yii2 этих проблем нет, можно подумать ещё раз.

  14. №7896
    Dr.Death
    Dr.Death 04 мая 2013 г., 22:43:14

    Да походу я ее пожизненно буду ручками править в исходниках :)

  15. №7898
    Sam
    Sam 05 мая 2013 г., 1:03:32

    Dr.Death, на самом деле Yii2 позволяет перекрыть Html через позднее статическое связывание, так что не придётся...

  16. №7900
    Александр Кочетов
    Александр Кочетов 05 мая 2013 г., 1:44:40

    Отличные новости!

  17. №7901
    Dr.Death
    Dr.Death 05 мая 2013 г., 10:09:09

    Sam, ну да я мельком вчера почитал, я так понял в принципе можно любой класс заекстендить и заюзать через свой

  18. №7903
    Stan
    Stan 05 мая 2013 г., 11:44:01

    Sam, может стоило бы дать ссылку твоей презентации о Yii 2, а то для людей не в теме совсем непонятно, что изменилось, в чем этот релиз лучше, что появилось, что убрали.

  19. №7906
    Sam
    Sam 05 мая 2013 г., 19:31:03

    Stan, она уже местами неактуальна.

  20. №7907
    Александр
    Александр 05 мая 2013 г., 20:33:25

    2 Dr.Death вы обычный тролль. Сколько времени нужно ныть здесь, на форуме и на хабре, вместо того, чтобы потратить 30 секунд и расширить CHtml или написать свою функцию.

  21. №7908
    Александр
    Александр 05 мая 2013 г., 20:39:58

    2 Sam, помимо фреймворка, мне нравится команда разработки Yii:

    1. Вы имеете свое мнение насчет развития Yii и не слушаете всяких нытиков и троллей, которые вместо тысячных постов не могут сделать один небольшой пулл.
    2. Вы делаете почти везде свое, а не используете готовых решений. Да, для вас это лишнее время, а для пользователей Yii - это более качественный и быстрый код.
    3. В Yii2 вы сохранили идею Yii1, а не придумали что-то новое (как симфони).

    Так же Yii сейчас явный лидер по скорости / качеству разработки. И прелесть в том, что Yii подходит для любых по сложности сайтов. Кто искал работу в Мск последний год, тот поймет, как много сейчас вакансий с Yii. Больше, чем симфони+зенд.

  22. №7909
    Dr.Death
    Dr.Death 05 мая 2013 г., 20:57:04

    @#$%^, я итак трачу 10 секунд и правлю под себя CHtml, а не ною, но ты продолжай следить за мной мой верный фанат, и давать мне советы что мне делать, чтобы знать куда тебе пойти.

    З.Ы. посмотрел бы как ты его расширишь или напишешь свою функцию, чтобы она вызывалась внутри yii...

    Sam, Надеюсь 2 версия даст больше возможностей для исправления всей той кучи нелогичных косяков с минимальными вмешательствами, потому что спорить с вами, на тему что int 0 это не пусто, например, можно бесконечно...

  23. №7910
    Sam
    Sam 05 мая 2013 г., 23:52:40

    Даст, конечно. Все известные затыки с расширямостью поправлены.

  24. №7915
    Петр
    Петр 07 мая 2013 г., 11:08:13

    Чтобы понять смысл Yii 1.1 и начать использовать осмысленно лично мне пришлось почти полностью просматривать код фреймворка. Смотрю теперь выпускаете вы новый и опять не понятно с какого места в него вгрызаться. Заново полностью выискивать где какие изменения произошли?... Очень не хотелось бы. По тому предыдущему видео презентации изменений я видел что по сути сделано не очень много. Но сейчас смотрю код Yii2, вижу что код ядра изменился, и не могу понять, на что мне надо обратить внимание, что переделано, а что нет. Читал недавний обзор на хабре (post/178917), опять какие то 5 слов сообщали, в стиле yii гида, а по сути изменения в логике работы ничего не сказали. Вы же сами разрабатывали, почему же не вести какой то cnange.log изменений. Например было раньше Yii::app(), стало Yii::$app. Желательно причина изменения. Но во вссяком случае я увижу на что обратить внимание и выясню подноготную дальше. Импорт какой то другой, по компонентам если менялось, то что, по конфигам, да и вообще общую логику.

  25. №7916
    Петр
    Петр 07 мая 2013 г., 11:15:35

    Эх печаль, не везет мне так не везет. С друпалом (6 => 7) такая же ситуация была. Только разобрался основательно в текущей версии, выходит новая и обесценивает все старые знания, усилия и подходы. Ведь заказывать будут хотеть только на новом, на "устаревшем" никто ничего не захочет теперь. Там так же было, что то поменяли, а что - фиг поймешь. Вроде тоже самое, но работает по странному, и вперед в том что раньше уже разобрался (ценой огромных усилий), рой построчно изменения.

  26. №7917
    Sam
    Sam 07 мая 2013 г., 12:30:19

    Петр, всё будет. Уже начали.

  27. №7925
    Roman
    Roman 09 мая 2013 г., 23:50:45

    Петр, что у вас всех так все сложно? Я уже активно юзаю 2 версию для тестового проекта что б понять что к чему. С версией 1.1 разобрался моментально, после зенда я просто попал в рай и начал наслаждатся ним, или вера не позволяет смотреть документацию и все такое? Сложность создают точно не разработчики проекта... ЗЫ: Есть такая фича крутая, читать доку, говорят помогает...

  28. №7937
    Пётр
    Пётр 11 мая 2013 г., 10:24:10

    Sam, спасибо за ссылку, прочитал, это уже похоже на правду. Это все в основном? А не подскажите по какой логике мне было бы легче находить ответы на например такой вопрос: почему в Connection::$pdo стало публичным свойством? В предыдущем было приватным. Связано это с тем что для каких то новых возможностей php 5.3. нужно настраивать напрямую объект pdo?

    Roman, после зенда у тебя другие процессы обучения шли, распознавание то же вместо обучения, ты же не сравнивай. Для меня yii - первый ОО PHP фреймворк и многие вещи пришлось прозревать. Про доку насмешил, стал бы я дебажить код в поисках ответов если бы нашел их в гиде или в книгах...

  29. №7945
    Sam
    Sam 11 мая 2013 г., 14:52:09

    Пётр, лучше всего спрашивать. Например, тут.

    В предыдущем были геттер и сеттер. Так внутри них никакой особой логики не было и никто их не перекрывал, решили избавиться от лишней прослойки.

    В книгах и документации действительно описать всё не получается. У всех разный начальный уровень подготовки и всем нужно разное количество пояснений для понимания сути. В новой документации я планирую приводить больше ссылок. Так те, кому и так понятно, смогут быстро всё прочитать, а те, кому нужны пояснения, смогут пройти по ссылке и почитать дополнительно.

  30. №7955
    Пётр
    Пётр 13 мая 2013 г., 8:18:55

    Ясно, насчет улучшения понятности обучающих материалов могу посоветовать вам глянуть глазком на книгу Курдюмова "Педагогическая опупема", глава 2, там в частности говорится что : Препятствий в обучении — всего три:

    1. отсутствие учебной массы,
    2. нарушение постепенности и
    3. непонятые слова.

    Если анализировать, то официальный гид имеет существенные проблемы с 1 и 3 Ваша например книга рецептов - 2 и 3 А исходный код - со 2-ым пунктом

    Я учился по всем трем, но больше всего мне помог разобраться исходный код, решая его проблему 2 с помощью гида, сами понимаете почему, в нем меньше препятствий для обучения, но и работать с ним трудоемче и дольше.

  31. №7960
    Sam
    Sam 13 мая 2013 г., 12:51:02

    Пётр, Курдюмова почитаю. Спасибо.

    В коде пункт 2, естественно, поправить невозможно.

    А вот официальный гид поправить вполне реально. По нему очень хотелось бы обозначить те места, которые вызывали проблемы.

  32. №7961
    Пётр
    Пётр 13 мая 2013 г., 17:42:09

    Буду в скором времени в следующий раз просматривать гид, отмечу тут примеры моментов, которые лично мне были непонятны.

  33. №7980
    Пётр
    Пётр 18 мая 2013 г., 9:48:00

    Давайте для примера раздел: Приложение::1. Конфигурация приложения

    По сути что мы изначально имеем из известного? Ничего. Что мы хотим узнать? Роль файла конфигурации main.php и как им полностью пользоваться, в том числе как изменять этот массив при желании.

    Сразу встречаем:

    Необходимые значения свойств устанавливаются в момент создания экземпляра приложения. Конфигурация — это массив пар ключ-значение, где каждый ключ представляет собой имя свойства экземпляра приложения,

    Каким точно образом устанавливаются эти св-ва не говорится. Глядим почти сразу есть "св-во" import. Смотрим в api класс CWebApplication такого св-ва в Public Properties нет.

    Не забываем мы же привыкли что в php возможно присваивание любых свойств объекту на лету. Итак в результате видим что есть массив в файле main.php с не совсем понятными значениями ключей, а уж тем более у компонентов тоже есть свои внутри "св-ва" и непонятно как их настраивать.

    Предпочтительно как бы это уточнять:

    1. Почти все объекты наследуются от CComponent
    2. для CComponent нельзя присваивать "произвольные" значения св-в объекта, это отличие от пхп
    3. Зато можно использовать сеттеры, которые предлагается именовать setИмяСвойства
    4. Теперь смотрим как настраивается CWebApplication
    5. Где обысно инициализируется объект? Правильно, в конструкторе.
    6. Если посмотреть то вся логика по обработке этого массива скрыта в CMODULE::configure (который вызывается из конструктора CWebApplication)
    if(is_array($config))
            {
                foreach($config as $key=>$value)
                    $this->$key=$value;
            }
    1. Т.е. мы понимаем что идет просто присваивание в цикле уже после создания объекта. А не как нибудь где то этот конфиг запоминается и потом используется.
    2. Для "св-ва" import отработал сеттер CModule::setImport
    3. То же самое для компонентов, понятно становится что весь этот массив компонентов тоже обработает сеттер
    4. И соотв. понятно где эти св-ва смотреть - это те которые могут быть присвоены объекту, публичные или именованные как сеттер.
    5. Дальше, как пример массы, полезным будет сказать что та же логика(цикл по св-вам) работает и при создании компонентов (В YiiBase::createComponent заныкан такой же циклик по "св-вам") и понятно какие ключи внутрь конфига компонента пихать.

    ...

    1. Когда описывается в модели ключи массива rules, там тоже про это напомнить, сразу после "дополнительные параметры — > это пары имя-значение, которые используются для инициализации значений свойств соответствующих валидаторов"

    И еще пример что было большой проблемой это - раздел модель, в котором прямо говорится что в yii два вида моделей - модель формы и AR модель, вторая по сути представляет всего лишь строку в таблице.

    Есть такая большая концепция MVC, в вики описанная, насчет VC понятно что это такое, а модель - все остальное. И как же это все остальное можно представить этими всего лищь двумя моделями...

    Например логика скидок в магазине. Это модель, но причем тут формы или строки в таблице...

    В общем вот это самое явное - говорить в общем как что то делать, но не объяснять суть происходяшего, достаточно сквозных ссылок на api, можно даже как в спойлерах.

  34. №7982
    Sam
    Sam 19 мая 2013 г., 22:48:19

    Спасибо. Вот такие правки сделал на основе ваших предложений: https://github.com/yiisoft/yii/pull/2487/files

  35. №7983
    dougan
    dougan 20 мая 2013 г., 16:19:15

    По поводу того, что конкретно было не понятно в документации. Прочитав главу о компонентах я так и не понял как работает система ивентов.

  36. №7984
    Sam
    Sam 20 мая 2013 г., 17:01:08

    dougan, как работает внутри или как пользоваться?

  37. №8060
    Печкин
    Печкин 14 июня 2013 г., 11:12:35

    Sam, у меня есть "Yii. Сборник рецептов" Будет ли книга как то полезна для yii2? И будет ли книга для Yii2 выпускаться на русском?

  38. №8062
    Sam
    Sam 14 июня 2013 г., 23:34:07

    Разве что идеями. Код не заработает. Книгу для Yii2 пока планов писать нет. Ещё фреймворк не готов.

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

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