Приветствие Yii2. Интерактив
С момента предыдущей публикации на сайте прошло два месяца. За это время практически наступило лето, начал набирать обороты мой замороженный с декабря по апрель марафонский контентный проект, изучено много материалов в различных областях знаний. Но главное событие этой весны для некоторых программистов – это выход beta-версии нового Yii 2.0. Это не может не радовать, так как практически на наших глазах произошёл вход Yii в экосистему фреймворков нового поколения.
Из появлявшихся дайджестов можно было изучить нововведения второй версии и со всеми доработками и изменениями. В апреле появился обзор на Habrahabr и был опубликован список новых используемых технологий на сайте Александра Макарова.
Постранства имён, трэйты, Composer, репозитории...
Новые инструменты, новые технологии. За крайние пару лет опробованы, доведены до рабочего состояния и внедрены в процесс разработки десятки систем тестирования, автоматической развёртки, управления версиями и пакетами... Как в старой шутке про нерадивую ученицу: «Почему ты опять не успеваешь по Истории? Мама, когда ты училась, учебник был тоньше!». Так и сейчас: в тренде разработки программных проектов происходит много изменений. Лучшие практики и инструменты портируются на другие языки и постепенно мигрируют из системы в систему. Новичку разобраться в этом может быть довольно-таки сложно.
Для ручной (и менее автоматизированной) работы новичку будет проще взять фреймворк первого поколения (CodeIgniter, Кohana, Yii 1.1.14), чем второго (Yii2, Symfony2, Laravel4 или Zend Framework 2). В первых нет таких «заумных» махинаций с «новомодными штучками», появившимися в PHP с версии 5.3. Но потом всё равно придётся подтягивать уровень. Трудно будет устроиться разработчиком в успешную компанию, не ориентируясь в новшествах языка, фреймворках и в системах автоматизации.
Светлое будущее
Завершая разработку небольшой CRM-системы, могу утешить, что если вы не испробовали вторую версию в своих новых проектах, то можете пока не расстраиваться, так как только немногие расширения с Yii1 переделаны авторами под Yii2. Соответственно, совсем скоро выйдет стабильный релиз и мигрировавших расширений станет больше. Но, с другой стороны, дефицит разработанных конкретно для Yii2 расширений компенсируется огромной коллекцией независимых компонентов, доступных для лёгкой загрузки с помощью Composer.
Пока вас может останавливать официальная незавершённость бета-версии и отсутствие более-менее стабильного релиза. Но если не сложно время от времени уделять некоторые ресурсы на своевременное внесение привок, то это не проблема. А если вы просто не можете «осилить» наплыв незнакомых технологий, то это лишь вопрос времени.
Сейчас активно пишется официальная документация к Yii2, которая вскоре будет переведена на русский язык. Многие пока побаиваются сочинять рецепты (и, тем более, записывать видео), так как не хотят их переделывать после каждого изменения фреймворка. Но это только начало.
А сейчас...
...интерактивный момент. Так как этот сайт во многом посвящён разработке на Yii и достаточно популярен, то нужно определиться с тем, что появится здесь дальше и в каком формате.
Долистайте вниз до формы комментариев и напишите, какие статьи здесь хотите прочесть, какие подкасты услышать, какие видео-уроки увидеть. По фреймворку, по Composer или по Git. Хотите что-то узнать ещё по Yii1 или пора переходить только на уроки по Yii2? В общем, предлагайте всё, что угодно.
P.S. В тему угарная анимация и саундтрэк:
Итак, жду в комментариях. Заранее спасибо за мнения!
Добрый день, Дмитрий.
Расскажите про новый ActiveRecord во втором Yii. Остались ли прежние проблемы, такие как невозможность сделать нормальные сеттеры/геттеры для атрибутов?
> невозможность сделать нормальные сеттеры/геттеры для атрибутов
Можно уточнить, что имеется ввиду?
Например.
Есть поле data которое содержит допустим сериализированные данные. Я же хочу получать десериализированные данные (и устанавливать, я вообще не хочу знать что модель с ними делает и как хранит). Я не могу повесить getData/setData.
Все потому что стандартный AR __get сначала проверяет существование значения в массиве атрибутов, потом (!) смотрит есть ли такая колонка и если есть то возвращают null.
https://github.com/yiisoft/yii/blob/1.1.14/framework/db/ar/CActiveRecord.php#L134
Более красивого решения я не придумал чем делать что-то наподобии getSerializedData().
По этой же причине могут возникать забавные ситуации если название связи совпадает с каким либо полем.
Спасибо за развёрнутый ответ. В самом деле в Yii геттеры так работают, причём не понятно, почему сделано так.
Иногда приходится для подобных задач изменять атрибуты в beforeFind, что совсем не здорово.
Вообще, ваше красивое решение является официальным.
Про первую версию, я не знаю почему так сделано, а во второй, это связано с так называемыми dirtyAttributes, нужно для того, чтобы не обновлять все поля в БД при запросе.
То есть, во второй версии, вам придется делать так же.
Хоть я и не стороник этой "джавизации" с магическими геттари и сеттерами, но все же, это самое оптимальное решение.
Для примера как это сделано в laravel 4: http://laravel.ru/docs/v4/eloquent#читатели
Было бы интересно глянуть, на вашем примере, полный цикл разработки простейшего блога под Yii2, по аналогии с http://www.yiiframework.ru/doc/blog/ru/start.overview
Здравствуйте!
Хотелось бы почитать про RBAC, а точнее про DBManager. Говорят, что будет нативная веб-морда для RBAC. А еще меня опечалила работа с MongoDB. Я в первой версии не работал с ней, сразу во второй начал. Так вот, меня дико огорчило то, что нет в ActiveRecord поддержки вложенных документов.
Спасибо!
Презентацию "неасилил" ))) вырубил после 2й минуты - это жесть....
Хотелось бы как раз переходную статью для тех, кто сидел на Yii 1.x и знаком с "новомодными технологиями" из общей теории.
Т.е. фреймворк2+Composer+Git для начинающих.
Здравствуйте.
Присоединяюсь к предыдущему комменту: "yii2+Composer+Git для начинающих".
Хотелось бы увидеть боевой практический пример с созданием своих событий и их вызовом, а так же по применению DI
Если вы не знаете что такое DI по сей день, я не знаю что вы делаете в веб-программировании.
Сам пишу на Yii1.
Yii 2 еще не трогал, нету просто времени и отпугивает отсутствие релиза.
Интересно как раз узнать про новые плюшки в Yii2, какие всё же реальные улучшения (какие-нибудь не большие примеры).
Я уже разобрался в принципе с задумкой DI в Yii 2, но вот про использование его элемента Instance так и не вкурил...
Было бы полезным освещение тех вещей, которые присутствуют во фреймворке, но в самой документации или вообще не упоминаются или вскользь.
Я видел там даже какие то моменты с определением языка и т.д.
очень бы хотелось чтобы вы закидывали еще статьи по Yii1 , добить уж до конца, осталось чуть чуть, например не затронуты загрузки на сайт, может напишите статью о создание фото-галереи + Ajax upload
Я думаю, что изучение Yii 2.0 лучше начать со структуры каталогов приложения. До сих пор не раскрыта тема взаимодействия frontendа и baсkendа. Это будет интересно не только новичкам, но и некоторым профи.
А что там должно взаимодействовать? На то оно и advanced :)
Согласен, технологии сегодня развиваются очень быстро и быть в теме довольно сложно. Но если сфокусировать внимания на основных моментах, то это вполне реально.
добрый день, отличный блог,
запилите плз несколько статей для начинающих, установка, настройка, создание постов, страниц, комментариев, гостевых книг, вопрос-ответ, поиск по сайту, создание админки и т.д. спасибо
Сразу что еще заметил - почти не описано как пользоваться хелпером yii\helpers\Security
Хотя не... По Security есть в доках какое то описание.
Он уже не в helpers :)
yii2 + Composer + Git
Ничего страшного в Yii2 нет. Всё очевидно и просто. Есть документация. И к Yii2 стоит относится как к совершено другому фреймворку, тогда и проблем не будет. А то начинают делать как в Yii, в итоге получаете хрень и кучу глупых вопросов.
Чего его смотреть, сырой до ужаса, много нужных вещей не работает.
Много чего было переработано так как пару людям не понравилось, а то что большинству было удобно забыли.
Вот запускаешь yii2 и не покидает ощущение что yii2 хотели сделать типа Symfony2 ,когда SF2 уже давно можно использовать в production.
Когда уже начнутся статьи по yii2 ? без вас не разобраться
Добрый вечер, Дмитрий!
Интересует момент прикрутки онлайн платежей (типа robokasa или по-отдельности) к yii1. В просторах инета встречается только один компонент.
Спасибо за материал, приводит к размышлениям.
Хотелось бы увидеть статьи на все выше упомянутые темы, но с более конкретными примерами. Это может быть описание применения какого-нибудь базового, часто используемого инструмента в первом поколении Yii, и описание аналогичного процесса, но уже на базе Yii2. Далее - сравнение, анализ, выводы.
Здравствуйте, хотелось бы почитать как подключить эту компоненту https://github.com/yiisoft/yii2/tree/master/extensions/authclient в том числе с VK.
Простейшие уроки по Yii2. Написание блога под Yii2.
Привет. Спасибо за работу. Хотелось бы увидеть статью о том, как правильно организовать сео-оптимизацию на yii2, спасибо.
По сути многое как SEO в Yii1, только из явных отличий добавлен уже готовый метод Url::canonical() и для получения маршрута вместо $this->route в представлении нужно явно ссылаться на контроллер как $this->context->route.
Спасибо!
Как создать блог на yii2? Хочется почитать такой же туториал как на оф сайте "Building a Blog System Using Yii" только для yii2, и создать блог самостоятельно.
Добрый день!
Хотелось бы увидеть уроки по реализации ajax фильтра, когда отмечаешь чекбокс и ajax подгружает нужную продукцию. На Yii 1 и 2 =)
Добрый день! Хотелось бы увидеть уроки по реализации RESTful API в шаблоне advanced как отдельное приложение вроде backend.