Столкнулся с проблемой, нужно выучить фремворк, но никак не могу определиться что лучше.
У кого есть опыт работы с этими фреймворками расскажите, пожалуйста, про подводные камни. В каких задачах, и кто себя лучше показует, и у кого какие перспективы.
Думаете, что здесь вас кто-то отговорит от использования Yii в пользу Kohana?
И почему именно Kohana, а не Symfony?
Попробуйте по чуть-чуть каждый. Когда я выбирал фреймворк, я так и сделал. Некоторые удивятся, но Yii показался мне самым доступным и лаконичным из всех Подходит он для любой задачи, перспективы я бы оценил как очень хорошие.
Мне в Yii framework очень нравится целостность стиля кода, именование методов и классов, все очень интуитивно и единообразно, что очень хорошо. Я чувствую полную гармонию со своим кодом, когда пишу на Yii ^__^. А вот в Kohana как-то все в разнобой, это ущемляет мои эстетические чувства.
Кроме того, когда я последний раз смотрел на Kohana, документация там была послабее, чем в Yii.
В общем, я больше симпатизировал собственно чистому Code Igniter, чем Kohana (не могу это объяснить словами, но чисто на интуитивном уровне "что-то там пошло не так").
Еще, не знаю тонкостей Kohana, я с ней знаком достаточно поверхностно, но архитектура Yii, особенно низкоуровневая (компоненты, поведения, события), его базовые классы – это просто сказка. Лучшее, что я когда-либо видел на PHP.
(Не считая виджетов zii, имхо: они – отстой.)
Мне было бы очень интересно услышать от обогащенного опытом Kohana-тяна преимущества его фреймворка.
Вот сейчас к примеру на Хабре хвалят Kohan’овский HMVC. Что по этому поводу думается? Нужно ли это в Yii? (лично мне – нет, но интересно мнение).
Я принимал участие в разработке HMVC для CI и там он был реально нужен… но больше как замена виджетам. В Yii проблемы с виджетами нет. Возможно, у HMVC в Ko3 более широкое практическое применение.
Странно, что для Yii показан HAS_MANY/MANY_MANY, а для Ko3 HAS_ONE. Полный аналог того, что написано для Ko3 в Yii выглядит не хуже:
$userName = Post::model()->user->name;
Ko3 умеет вычислять отношения без какого-либо описания? Если да, то что Ko3 будет делать с именами таблиц вроде ‘news’?
Потому что писал и думал про вывод ника юзера, исправлю:
$post = ORM::factory(‘post’);
$post->user[N]->name;
При работе с моделью и так и так идёт запрос INFORMATION_SCHEMA.
ЗЫ: Я не пойму, вы будете придератся ко всему пока я не соглашусь с Вами? Ок, я соглашусь Yii лучше, почему? Потому что он наиболее быстрый из всех. Почему я вижу только один плюс? Потому что для меня и для заказчиков это самое важное… Не один раз уже была такая ситуация что клиент заказывал проект на зенде, потому что ему наговорили что он крутой очень, а потом опять оплачивали ту же суму чтобы я переносил на более быстрый фрейворк, и я выбирал Yii.
А который из постов выберется в данном случае? Первый попавшийся?
Если не включить кеш, что на сервере сделать несомненно стоит.
Ну, про AR мне просто очень интересно, чем принципиально лучше, поэтому и роюсь-придираюсь. Синтаксис, как я понял, очень сходный. Штуку с автопостроением отношений оценил. Ввиду отсутствия кодогенерации вполне оправдано.
Меня такая запись почему-то отпугивает. Post::model()->find() намного приятнее, если вы это обсуждаете А вообще, если бы всем нравился только один подход, то не было бы кучи других фреймворков. Здесь собрались люди, которым нравится Yii
А который из постов выберется в данном случае? Первый попавшийся?
Я просто не добавил условие
Разработчики Yii настолько суровы что по их логике реляцию нельзя кешировать? (Я этот вопрос знал наперёд…)
Ну тут не интересоваться стоит… Просто придумать проект и воплотить его в жизнь на разных фрейворках, плюсы каждых из фреймворков становится видно мгновенно. Я думал написать в песочнице такую статью… Но универ не позволяет…
Ну… Это тоже самое что клиент Вам скажет - "Переделывай, ничё не правильно", только за это платят))
Можно сделать и:
$post = new Model_Post;
Просто первый вариант более соответствует логике. В том плане что работа с представлением View::factory, с запросами Request::factory и тд ( хотя я точно и не знаю, вроде $this->view и $this->request в контроллере тоже проканает )