Должен ли я использовать Drupal или фреймворк типа Kohana для веб-приложения"


Дискуссия заключается в том, что мне нужен фреймворк PHP/Drupal с гибкостью для добавления пользовательских функций в потенциально большое приложение (веб и api).

Однако, с фреймворком, таким как Kohana, я вижу, как я решаю и заново изобретаю колесо с простыми вещами, такими как управление учетными записями и CMS. Управление учетными записями и быстрый сбор данных, как и быстрое создание форм, утомительны в Kohana, но кажутся невероятно простыми в Drupal. С другой стороны, основываясь на моей ограниченной Опыт Drupal, я сомневаюсь, что создание быстрых пользовательских " функций "и предоставление пользователям возможности создавать" группы " и управлять своими собственными ролями в этих группах-это то, что Drupal может легко выполнить.

Для упрощения, способен ли Drupal создавать настоящие веб-приложения; где приложение является сервисом и предоставляет пользовательские результаты каждому пользователю? Может ли он предоставить пользователям интерфейс, подобный панели мониторинга, для изменения их настроек или предпочтений? Может ли он агрегировать данные от конкретных пользователей, чтобы обеспечить лучшее результаты / информация для других?

Если это так, пожалуйста, укажите мне на некоторые знания : -)

6 6

6 ответов:

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

В компании, в которой я работаю, они используют Drupal или Zend Framework практически для всех проектов (Drupal в большинстве своем). Многие ZF-ориентированные люди не любят Drupal, поскольку его структура так далека от объектно-ориентированного ZF-материала, а Drupal-это "просто CMS". Как я вижу, Drupal-это больше фреймворк, чем "просто" CMS, и самое лучшее, что он невероятно гибкий: все возможно.

И да, действительно есть модуль для всего. Чтобы быть более конкретным:

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

Я могу только догадываться, что вы имеете в виду с быстрыми пользовательскими функциями, но imo легко расширить Drupal с помощью собственных модулей. Наиболее функции доступны в виде модулей (бесплатных, внесенных сообществом), и многие продвинутые функции могут быть легко созданы, например, с помощью модулей "views" и "cck". http://drupal.org/project/cck http://drupal.org/project/views

Создание групп: "органические группы" (http://drupal.org/project/og )
"og_user_roles" (http://drupal.org/project/og_user_roles )

Эти модули вместе - то, что вам нужно для создания групп, которые иметь групповые специальные роли (и роли, имеющие определенные права). Возможно, есть и другие способы, кроме использования "og_user_roles", но я рекламирую его, потому что сделал несколько патчей для него несколько лет назад. Проблема обычно заключается в слишком большом количестве вариантов.

Если вы хотите расширить определенные параметры группы, вы можете закодировать свой собственный модуль, но, скорее всего, вам это не нужно, потому что для него уже есть модуль. Например, существует по крайней мере 120 модулей, которые каким-то образом интегрируются с "organic_groups" -модуль: http://drupal.org/taxonomy/term/90?page=19

Для упрощения, способен ли Drupal создавать настоящие веб-приложения; где приложение является > сервисом и предоставляет пользовательские результаты каждому пользователю? Может ли он предоставить пользователям интерфейс, подобный панели мониторинга ,для изменения их настроек или предпочтений? Может ли он агрегировать данные от > конкретных пользователей, чтобы обеспечить лучшие результаты / информацию для других?

Короче говоря, да. Есть так много способов достичь чего-то, что вы описанный. Но, вероятно, они будут включать в себя, по крайней мере, отличный "вид"-модуль. Я думаю о представлениях как о некой конечной абстракции SQL-слоя и пользовательского интерфейса для любого человека. И есть более 300 модулей, которые каким-то образом интегрируются с представлениями... ( http://drupal.org/taxonomy/term/89?page=55 )

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

Когда вы доберетесь до модулей кодирования, вам, вероятно, потребуется много времени, чтобы привыкнуть к Drupal API, Forms API, крючкам модулей, системе переопределения тем и бесконечным опциям из модулей contrib. Но оно того стоит.

Я нахожу этот сайт очень полезным, чтобы найти модуль для какой-то конкретной потребности. Сайт показывает ту же информацию о модуле, что и Drupal.org, но и пользователь отзывы / рейтинги, чтобы найти лучший вариант: http://drupalmodules.com/

Если это неясно, мой ответ будет идти с Drupal:)

PS: D7 должен выйти очень скоро. Некоторые могут подождать его, вместо того чтобы начать с D6. Во время D5 люди будут долго ждать, прежде чем перейти на D6 из-за отсутствия модулей. Я считаю, что для D7 наиболее важные модули будут доступны для D7 очень быстро. Некоторые исследования на данный момент (04.12.2010):

Около 190 модулей обещают иметь версия Drupal 7 день выпуска D7: http://drupal.org/project/modules?solrsort=sort_title%20asc&text=d7cx&display=table

Для D7 уже доступно около 130 модулей (большинство из них включены в предыдущую ссылку): http://drupal.org/project/modules?filters=drupal_core:103&solrsort=sort_title%20asc&text=d7cx&display=table

EDIT: Как новичку мне разрешено размещать только одну ссылку, поэтому я удалил http: / / из drupal.org-links

Я работал как с Drupal, так и с Kohana.

В моем понимании это действительно зависит от того, что вы хотите сделать. Если вы собираетесь сделать веб-приложение, которое должно много расти и должно быть гибким для его роста, то я рекомендую использовать Kohana. Кохана создана для того, чтобы поддерживать вашу кодовую базу чистой и сухой (не повторяйтесь). Хотя у него, вероятно, не так много модулей, как у Drupal, у него есть некоторые модули Auth и ACL.

Если вы хотите, чтобы все было сделано быстро, и вы не против сделать ваше приложение из других своих модулей Drupal сделает вашу работу быстро. Но имейте в виду, что, когда вы собираетесь расширить, вы, скорее всего, столкнетесь с проблемами, которые исходят от модулей, которых вы не знаете. Кроме того, это требует от вас немного гибкости.

В конечном счете это ваш выбор. Но я рекомендую использовать фреймворк MVC, если вы собираетесь писать его с нуля.

Нет ничего невозможного, что можно было бы сделать. Вопрос в том, хотите ли вы работать с чужим кодом и попытаться понять, как копать внутри и расширять, чтобы он соответствовал вашим потребностям, или вы хотите пойти с легким фреймворком, таким как Kohana или, возможно, CodeIgniter(мой личный фаворит) и водить свой собственный автомобиль, хотя вам, возможно, придется "изобрести" некоторые колеса.

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

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

Самое интересное в Drupal-это то, что сообщество шутливо называет правилом № 35: для него есть модуль. Если вы не хотите сделать что-то действительно сложное, вы часто обнаружите, что функциональность уже реализована, и вам просто нужно ее настроить.

Я новичок как в Drupal (7.12), так и в Kohana (3.2.0)... Мой опыт до сих пор таков, что документация Коханы отстой (или, по крайней мере, то, что я видел). И если их сайт и / или форум написаны на Кохане, это тоже отстой (slooooow, с перекрывающимися полями и т. д.). В то время как с Drupal, это было чисто и до сих пор, очень эффективно (насколько я могу судить до сих пор).

Я думаю, мне интересно, были ли комментарии до сих пор сосредоточены на Drupal 6.x и не приняли во внимание более поздние инновации в Drupal. Какие-нибудь мысли / комментарии? Спасибо.

Как начинающий веб-разработчик, я могу сказать вам, что вам нужно очень строго анализировать варианты использования вашего веб-приложения. Если вы в состоянии охватить по крайней мере 75% случаев использования, которые вы предвидите, это хорошее начало.

Сделав это, вы должны понять, даст ли вам Drupal/Joomla/CMS(x) все это и еще один потенциальный неизвестный 5-10% - ный ползучесть функции. Если да,то вам, возможно, лучше войти в Drupal и т. д.

Кроме того, я думаю, что CodeIgniter или Symfony-это отличный PHP фреймворки, с которыми можно прыгать. Оба предлагают солидные учебные пособия, видео и прочее, а также полезное сообщество. Kohana, над которой я работаю, я думаю, что вы должны войти, если вы действительно понимаете PHP и его недостатки и понимаете, что скорость будет критическим фактором. Это две большие сильные стороны, которые KO3 приносит в таблицу, и вы действительно должнынуждаться в них, чтобы использовать его.

Надеюсь, это поможет.