<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.

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