2010-04-07 1 views
6

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

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

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

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

ответ

5

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

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

И да, действительно, есть модуль для всего. Точнее говоря:

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

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

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

Эти модули вместе то, что вам нужно, чтобы создать группы, которые имеют группы spefic роли (и роли, имеющие конкретные права). Вероятно, есть другие способы, кроме использования «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 - это все модули. И я знаю, что некоторые из моих коллег даже не любят этого, потому что вы никогда не добираетесь до код забавный материал, потому что это уже сделано. По крайней мере, вы можете посмотреть код модуля и узнать об этом. Или смеяться над этим, там тоже много программируемых модулей.

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

Я нахожу этот сайт очень полезным, чтобы найти модуль для некоторых конкретных потребностей. На сайте отображается информация о том же модуле, что и Drupal.орг, но и отзывы пользователей/рейтинги, чтобы найти лучший вариант: 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

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

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

+0

Я вынужден признать, что ссылка на «органические группы» убедительна. Но я также задаюсь вопросом, существует ли серьезное влияние на то, что модуль Drupal устарел, когда обновляется базовая версия drupal, оставляя «настраиваемые» исправления, несовместимые с обновлениями. – Andres

+0

Патч может вызвать проблемы, да, и большинство многофункциональных проектов Drupal имеют тенденцию к патчу или двум. Однако вам, скорее всего, никогда не придется исправлять основные модули (чем при установке D6.x). При использовании предыдущей версии Drupal 5 мне иногда даже приходилось исправлять основные (большие нет-нет), чтобы решить некоторые проблемы. Но D6 более развит и настолько расширяем, и поэтому мне не пришлось взломать какой-либо основной модуль после D5 в более чем дюжине проектов D6. Модификации базовой версии ядра, такие как 6.15 -> 6.16, являются гладкими: они всего лишь исправления ошибок и исправлений, и модули все еще работают. Однако ... [текстовый предел] – Ilmari

+0

... Основные версии, такие как 5-> 6, однако, несовместимы: все модули нуждаются в обновлении, а иногда нет (или вам нужно переключиться на альтернативу). Патч-модули должны быть повторно исправлены. Обновление было болью в заднице, например, обновление с D4 до D5 заняло у меня месяцы планирования (популярный сайт, который был живым, и тогда я был Drupal-noob .. оправдания). Но это было потому, что у него было много пользовательских модулей и патчей. И Drupal не был таким популярным тогда (меньше модулей). Обновление D5-> D6 очень просто по сравнению с этим, а D6-> D7 должно быть еще проще. [текстовый предел] – Ilmari

1

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

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

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

+0

Но как только вы научитесь писать/модифицировать модули и работать с основным Drupal, вы сможете делать подобные вещи намного быстрее в будущем. ИМХО для тех, кто планирует делать такие вещи как нечто большее, чем одноразовое, выигрывает Drupal. – intuited

+0

@intuited Я не согласен, так как как только вы узнаете, как делать вещи в Framework, и у вас есть базовые классы, у вас есть основа, чтобы идти и идти, что хотите. Если кому-то нужна гибкость, он должен иметь как можно больше собственного кода в своем приложении, иначе это будет кошмар. –

+0

Это зависит от того, что вы будете делать. Если он находится в шаге Drupal (и много чего есть), в итоге он будет быстрее делать это в Drupal, особенно после того, как вы перейдете на начальную кривую обучения того, как продлить Drupal превосходит его основные возможности. Drupal в основном * является * каркасом, но более высоким и более конкретным, чем большинство. – intuited

1

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

+1

Существует даже модуль drupal, который добавляет к каждому узлу изображение кого-то, устанавливающего этот модуль в нижнем белье. – intuited

0

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

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

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

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

5

Я работал как с Drupal и Кохана.

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

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

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

+1

Спасибо! Вы работали с KO3? Я на перекрестке между KO2 и KO3. Любые мысли о CodeIgniter 2.0? – Andres

+0

«Но имейте в виду, что когда вы собираетесь расширять, вы, скорее всего, столкнетесь с проблемами, которые возникают из модулей, которые вы не знаете». Я полностью согласен. Вы можете уменьшить проблемы с модулями, хотя, просто изучая их источники. Кроме того, выберите лучшие модули, обычно есть много альтернатив. Я обычно говорю с тем, что звучит наиболее надежным и имеет большинство пользователей. В конце концов, зная различные API: s основных модулей и то, как они интегрируются вместе, необходимо изучить. Если вы поедете с Drupal, вы должны проконсультироваться с человеком с несколькими годами опыта, чтобы спасти вас от изучения этого сложного пути. – Ilmari

+0

@ Андрес: Я работал только с Kohana 2.x. Kohana 2.x применяет шаблон MVC. Этот шаблон должен быть достаточно хорош для большинства проектов. Также есть еще один про 2.x, что есть доступная документация. Kohana 3.x применяет шаблон HMVC, который может сделать ваше приложение более модульным и простым в управлении. Я также действительно поддерживаю метод DRY (google). Взгляните сюда, чтобы сделать ваш выбор: http://kerkness.ca/wiki/doku.php?id=what_version_of_kohana_should_i_use – RJD22

1

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

Я думаю, мне интересно, были ли комментарии до сих пор сосредоточены на Drupal 6.x и не учитывали более свежие нововведения в Drupal. Любые мысли/комментарии? Благодарю.

 Смежные вопросы

  • Нет связанных вопросов^_^