Фреймворк для большого проекта

Killbrum

Новичок
Вечер добрый! Прошу прощения если создаю топик где не надо или это боян. Суть какова. Надо за короткие сроки написать большой проект. В команде только 3 человека. Сразу смотрю в сторону фреймворков. Сначала посоветовали Кохану, Потом Уй (Yii) потом Симфони. Уже тупо запутался. Главное для нас это расширяемость , легкость в освоении и поддержка аякса. Ребят не бросайте помидорами :) подскажите на что лучше обратить внимание. А то начитался всяких статей , в каждой валят что то другое вот и каша в голове.
 

Вурдалак

Продвинутый новичок
Если в короткие сроки, то Kohana 3, IMHO. С Symfony и Symfony 2 скорее всего уйдёт много времени на изучение, Yii — не знаю.
 

A1x

Новичок
судя по вопросу, лучше всего берите кохану, так как он самый простой в освоении и не думаю что уступает другим в расширяемости. Что до поддержки аякса то это вообще не имеет отношения к пхп фреймворку.
 

Ярослав

Новичок
Killbrum
Посоветовал бы использовать то, с чем больше всего знакомы. Думаю хотя бы на трёх разработчиков, найдется человек, который работал из одним из перечисленных фреймворков.
 

wadim

Новичок
kohana легка в освоении и командой делать проект удобно, но стандартные ORM и database слабоваты.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
на любой фреймворк надо 2-3 месяца, пару проектов сделаешь - будешь разбираться неплохо

yii хорош в работе логичностью, единообразием, но есть проблемы с документацией,
symfony хорош наличием большого функционала "искаропки", но учить его соответственно долго,
кохана - модно стильно молодежно, зачастую нелепо (недавно один сотрудник, поклонник коханы, сказал про yii "блин.. Непривычно легко :D")
 

fixxxer

К.О.
Партнер клуба
grigori
Позволю себе немного пооффтопить. Недавно посмотрел беглым взглядом Yii. В целом, симпатично. Но я не понял, как реализовать связку "многие-ко-многим" с каскадным обновлением (кроме как вынести в отдельный сервис и зафигачить ручками транзакцию и цикл). Может, плохо смотрел? В тех же рельсах это все есть из коробки.

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

title=title
body=body
category_id[1]=true
category_id[3]=true

и таблички

BlogEntry(blog_entry_id, title, body)
Category(category_id, ...)
BlogEntryCategory(blog_entry_id, category_id)

Можно как-то сказать, что для BlogEntryModel has_many CategoryModel by (category_id) надо делать каскадное обновление? relations для find*() вижу, да, а для обновления неясно.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
fixxxer в коробке нет, есть https://github.com/yiiext/with-related-behavior
он войдет во 2й major release

yii маленький, там реально много чего нет, симфони по сравнению с ним - просто монстр

и в нем относительно много недокументированного или неизвестного, о чем узнаешь из блогов или лично, это нерешаемая проблема
 

fixxxer

К.О.
Партнер клуба
Ага, спасибо, я так и понял - вроде как через behaviours можно что угодно сделать. То, что маленький, это хорошо - вполне можно самостоятельно изучить исходники. Монстры типа symfony 2 меня пугают. (Я тут серьезно задумался на тему выбрасывания своих велосипедов и перехода на какой-то из активно развивающихся фреймворков).
 

Ирокез

бессмертный пони
Команда форума
Партнер клуба
...(Я тут серьезно задумался на тему выбрасывания своих велосипедов и перехода на какой-то из активно развивающихся фреймворков).
А есть уверенность в том, что не ошибешься в выборе?
Давно слежу за kohana, такое чувство что многое пишет с моего :) , попробовал на нем форк своего приложения, но чисто субъективно понял, что в основном меняется синтаксис (в отличии от моего)
+ нет, того к чему привык и что существенно влияет на работу с данными и самое главное, если свой код сейчас переношу в экст, то для чужого кода либо надо быть в team чтобы делать то-что задумал либо надо забыть про производительность.

А для большого проекта, все таки посоветовал бы, если есть возможность и команда, то разрабатывать свой фв, поясню:
- есть возможность оптимизировать сложные задачи
- нет зависимости от релизов и новых фич фв (к примеру если переработали сильно переработали интерфейс "условно" работы с БД, более производительное решение, вам придется рефакторить кучу кода)
- всегда свой фв, при грамотном построении можно подстроить под существующий код, который его использует
- большинство фреймворков, рано или поздно уйдут в монстрокод, и беда в том что этот функционал вам не надо, но делать то уже нечего, тут конечно, можно не обновляться, но тогда у вас будет своя ветка, мало чем отличающаяся от разработки своего фв

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

fixxxer

К.О.
Партнер клуба
grigori
Ох. насколько мне понравились модели и активрекорд настолько же не понравились вьюхи. :/
 

Redjik

Джедай-мастер
grigori
Ох. насколько мне понравились модели и активрекорд настолько же не понравились вьюхи. :/
то про хелпер классы? согласен, там проще свое сделать. Даже подумывал со смарти попробовать.

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

grigori

( ͡° ͜ʖ ͡°)
Команда форума
fixxxer там вью по сути на коленке написан, просто include нативных шаблонов и класс для генерации HTML и URL.

Есть неплохой и совсем недокументированный кодогенератор для админки и классы view для него (то, что тебе не понравилось).
Что нигде написано - что он совсем не для фронта, а для фронта нет ничего.
Для админки - вполне, быстро делается почти все что надо. Но разобраться трудно - только по статьям в блогах и по исходникам.

Для фронта я в декабре прикрутил Смарти 3 без проблем (ну, баг компилятора смарти ни при чем).

Работа с формами средненько - буду интегрировать QuickForms2.
Валидация тоже наколеночная, свои красивые валидаторы пишутся как lambda-функции без заморочек.

Свои велосипеды выкидывать не надо - они еще пригодятся, их легко встроить

Я ж говорю - yii маленький, в нем нет и этого, и того, но не тормозит как ZF и не сковывает.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Ирокез а что твое?

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

Ирокез

бессмертный пони
Команда форума
Партнер клуба
Ирокез а что твое?
перечисленное тобой в основном уже решено, я б рассказал, но ты ж опять флейм разведешь ... а мне влом доказывать, что я не дурак
да, готовлю я холиварную тему, по поводу своего :)

так, я не против, если-бы ты в отдельном топике рассказал, обещаю не флеймить :)

да и не помню, я за собой особо такого/

+ задачи мне надо не в основном решать
 
Сверху