Комментарии 37
>>> Существует пара недостатков использования фреймворка, которые следует отметить. Во-первых, весь код, который включает в себя фреймворк, создает нагрузку на сервер и это может стать реальной проблемой.

image
> Плюсы
> Вот несколько очевидных преимуществ использования фреймворка
Эти строки можно написать под любым современным фреймворком. Например Symfony или Laravel.
За исключением одного пункта, который к Yii не относится:
> — Использует стандартные способы решения задач, что уменьшает или устраняет запутанность кода.
Наоборот. Другие фреймворки (такие, как Symfony или Laravel) используют стандартные сторонние компоненты, а Yii — нет.
Стандартные компоненты — это странная фраза. Если под ними подразумевается компоненты симфонии, то навряд ли они стандартные, скорей популярные. Yii с чего их должен использовать, когда у них первая ветка была писана уже давно, и наработок было воз и тележка: activerecord, request/response…
Мне кажется в книге автор имел в виду MVC, activerecord и другие технологии, которые уменьшают или устраняют.
Однако, используя стандартные способы решения задач можно так же запутать код, что черт с прожектором не разберёт.
Это конечно же зависит от культуры программиста…
Статья ни о чём, доводы в пользу Yii ни о чём, перевод кривой.
А мне не понравился yii2 как и многим моим коллегам — избыточен, чувство чрезмерной перегруженности не покидает.
невыносимо читать. сразу видно, что пишет/переводит не носитель языка.
ваши комменты только подтверждают мои мысли — вы не дискутируете, а просто кидаете фразы невпопад.
позвольте не согласиться на счет невпопад:

я русский бы выучил
только за то,
что им
разговаривает Путин. (С)
Статья, на мой взгляд ни о чем. «Я выбрал yii2, потому что мне понравился yii2».

Было бы хорошо, если в статье указать конкретные примеры, которые сразили сердце автора и втянули его в мир yii2.

Я сторонник symfony2, но по долгу службы приходится сейчас писать на yii2.
На мой взгляд, yii2 необоснованно усложнен, по сравнению с symfony2. Но об этом я напишу позже, когда смогу более объективно оценить плюсы и минусы обоих фреймворков, а так же когда у меня будет примерно равный опыт работы с обоими фреймворками.
Удивлен мнением, что Yii2 усложнен поболее, чем Symfony2. Первый раз такое встречаю. :-)
Видимо имеется ввиду что sf2 — стройный и логичный, а yii,… ну вы поняли.
Мне кажется просто у автора книги больше другого опыта-то и небыло.
yii сложнее чем symfony?! воу воу полехче… Сложнее симфони я пока ничего не встречал, а yii прост до безобразия.
Активно использую Yii2, но в основном потому что из-за его популярности его часто требуют заказчики. Да, фреймворк вполне удобен, но на мой взгляд в нем много я бы сказал «шероховатых углов». Я очень удивлен, почему именно этот фреймворк набрал такую популярность, а не например CakePHP 3, который настолько прост, логичен, что я бы его активно рекомендовал всем новичкам. В кейке, например нет необходимости вообще создавать файл модели, модель генерируется автоматом, нет необходимости вызывать рендер вьюшки, он опять же подцепляется автоматом, а какая там офигенная ORM! Странно, что у нас он мало распространен.
>> Активно использую Yii2, но в основном потому что из-за его популярности его часто требуют заказчики.
Ваши заказчики лучше вас знаю какой фреймворк им использовать? Сочувствую.
Да, есть умные заказчики, которые понимают, что если проект на малоизвестном фреймворке написан, то потом сложнее будет найти разработчика для его поддержки. А yii-специалистов сейчас куда не плюнь. Так что имхо вполне логично они поступают.
Умные заказчики поминают, что умным разработчикам не принципиально, работать ли с CakePHP или с Yii. Или еще с чем-то. Работать можно на любом из них. Имхо, от заказчика можно принять выбор платформе только в одном случае — проект уже существует и работает на базе ХХ.
Ок, допустим вы фрилансер и вам предложили хороший вкусный и не очень трудоемкий заказ. Вы предлагаете заказчику сделать его скажем на CakePHP, но заказчик хочет чтобы он обязательно был сделан на Yii, который к слову вы тоже знаете. Вы пошлете такого заказчика? Если инструмент мне знаком, то я соглашаюсь на условия заказчика.
Скажем если бы я заказывал сайт на фрилансе, то я бы тоже не согласился на что-то экзотическое и малоизвестное (таким на текущий момент является CakePHP, который у нас не очень распространен).
Конечно когда речь идет о мега огромном проекте, тогда уже я буду настаивать на инструменте, который мне кажется больше подойдет. Но когда речь идет об относительно небольших заказах, то как вы правильно заметили «разработчикам не принципиально, работать ли с CakePHP или с Yii» и если заказчику предпочтительнее второе, то значит сделаю на нем.
Модели в Yii2 несут в себе чуть больше смысла чем обычный маппинг в объекты. Если нужна простая выборка из БД в Yii2 тоже не нужно создавать модель. Единственное, на выходе будет массив а не объект, но не думаю что есть существенная разница. Пример:
$rows = (new Query())->from('table_name')->all(); 

И ORM у него как минимум не хуже чем у CakePHP.

Про авторендер вьюшек, спорный вопрос. У меня были случаи когда из одного действия по условию нужно было рендерить разные вьювы. А если нужно получить json или xml то вьюв вообще не нужен. Поэтому, субъективно, явный вызов рендера выглядит логичнее.

в нем много я бы сказал «шероховатых углов»

Ну и помогите разработчикам, изложите свои мысли в багтрекере или на yiiframework.ru
Я не считаю yii2 плохим фреймворком. Да и вообще на текущий момент он мой основной фреймворк. Благодаря огромному русскоязычному комьюнити я всегда могу задать вопрос и практически мгновенно получить ответ (в официальном чате), и я незнаю другого фреймворка, который мог бы похвастаться этим.

Просто кейк мне кажется более логичным и код на нем более красив и имхо он проще для изучения новичками, но к сожалению практически полностью отсутствует русскоязычное сообщество. Для меня это важно, так как я, например, могу изучить документацию на английском, но вот задать вопрос на английском языке для меня уже мегасложно.

Вы привели пример
$rows = (new Query())->from('table_name')->all();
я не спорю, что это будет работать, но это не выглядит красиво. Тоже самое на кейке будет выглядеть просто
$this->TableName
и в ответ будет объект. Даже если нужны связи, то их можно подцепить на лету, так и не создав файла модели. Это удобно для простых проектов. Когда надо что-то посложнее, то конечно файл модели лучше создать, да и бизнес логику в нее вынести неплохо. Повторюсь, я не говорю, что в yii что-то нельзя сделать, просто это выглядит не так красиво.
Не неплохо, а обязательно. Потому что как минимум она уходит в СУВ где всегда можно поднять историю комитов и разобраться в проблеме даже в случае если в проект только один разработчик — ты сам.
Слушайте, ну если я осознанный говнокодер, то что тут поделать. Меня достало это маниакальное следование каким-то строгим правилам. Когда речь идет о небольшом проекте и который надо сделать максимально быстро, я делаю его именно быстро и в этом случае как раз могу модели вообще не создавать и всю бизнес-логику оставить в контроллере. Я не понимаю когда кто-то воротит нос «фууу ты что не слышал о тонких контроллерах?» когда речь идет о сайте визитке. Когда речь идет о крупном проекте, то конечно, надо и модели создать и бизнес-логику туда вынести иначе потом это поддерживать станет невозможным.
она уходит в СУВ где всегда можно поднять историю комитов и разобраться в проблеме даже в случае если в проект только один разработчик — ты сам.

Что мешает поднять историю коммитов, даже в случае «толстых» контроллеров?
Так я не про толстые контролеры, а про вынос бизнес-логики за код (в базу там, как в MODx).
Про обязательно с в контексте «да и бизнес логику в нее вынести неплохо» перед «Когда надо что-то посложнее». Для среднего/большого СУВ и бизнес-логика в коде строго обязательны.
Про вынос кода в базу, как-то жоско. Не представляю как это потом поддерживать. А в остальном согласен.
Ну вот так и поддерживается. Со слезами, соплями и бэкапами. Я просто подумал было, что в CakePHP так же, если он все так хорошо берет на себя.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.