Должен ли я использовать фреймворк типа Drupal или Kohana для веб-приложения - PullRequest
6 голосов
/ 07 апреля 2010

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

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

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

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

Ответы [ 6 ]

5 голосов
/ 12 апреля 2010

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

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

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

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

5 голосов
/ 10 апреля 2010

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

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

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

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

Я могу только догадываться, что вы имеете в виду, имея быстрые пользовательские функции, но, тем не менее, легко расширить Drupal с помощью ваших собственных модулей. Большинство функций доступны в виде (бесплатных, предоставленных сообществом) модулей, и многие расширенные функции могут быть легко созданы, например, с помощью модулей «views» и «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)

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

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

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

Короче да. Есть так много способов достичь того, что вы описали. Но, вероятно, они будут включать, по крайней мере, отличный модуль "views". Я думаю, что представления - это своего рода абстракция уровня SQL и пользовательский интерфейс для всех. И есть более 300 модулей, которые как-то интегрируются с Views ... (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

РЕДАКТИРОВАТЬ: как новичку, мне разрешено публиковать только одну ссылку, поэтому я удалил http: // из drupal.org-links

1 голос
/ 13 марта 2012

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

Полагаю, мне интересно, были ли комментарии до сих пор посвящены Drupal 6.x и не были приняты во внимание последние нововведения в Drupal. Есть мысли / комментарии? Спасибо.

1 голос
/ 07 апреля 2010

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

1 голос
/ 07 апреля 2010

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

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

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

0 голосов
/ 09 апреля 2010

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

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

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

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

...