Впечатления от CMF Drupal. Часть 1.
Автор: Alex ‡ Дата: 1st Сентябрь 2009 ‡ Рубрика: Интернет, Сайты ‡Некоторое время назад появился у меня заказ на создание одного небольшого сайтика. Задача вроде бы на первый взгляд была не сложная, но клиент упирал на то, что в дальнейшем после запуска этого проекта он будет в значительной степени расширяться, наполняться функционалом, наворачиваться, короче. Соответственно встал вопрос реализации – как, на чем, с помощью чего делать. Мой друг и коллега (имеющий значительно больший опыт в работе над интернет-проектами) предложил мне рассмотреть вариант использования движка Drupal для разработки этого проекта.
Основные аргументы выглядели примерно так:
- На этом движке за вечер можно нормальный сайт накидать.
- Если разберешься, можно на Друпале такие вещи делать…
- По сравнению с Joomla значительно проще.
Трудно сказать, какой из аргументов был более убедителен для меня. Наверное, все три в равной степени. За первый аргумент сразу зацепилась моя природная лень – если за вечер можно нормальный сайт сделать, то остальные несколько вечеров можно посвятить праздному безделью (на которое последнее время совсем нет времени). Второй аргумент пришелся по душе желанию заниматься действительно серьезными делами, приносящими серьезные деньги. Третий аргумент – тут сыграл свою роль тот факт, что не за долго до этого я решил немного изучить движок Joomla, а точнее попробовать написать под него какой-нибудь более или менее сложный модуль. Возможно, люди, пишущие под Joomla со мной не согласятся, но мне показалась архитектура модулей (а также принципы их написания), скажем так, несколько тяжеловесной и трудной для понимания. Опять же не исключаю, что если бы я уделил изучению Joomla несколько больше времени, то смог бы уловить общую архитектуру движка и системы модулей, но тем не менее на тот момент двиг мне показался очень трудным.
Итак, учтя приведенные выше аргументы, я решил попробовать изучить CMF Drupal.
Установка
Собственно установка движка почти не составила труда. Правда пришлось немного покопаться (почитать) с его руссификацией (оказалось, что есть несколько способов). В остальном – все просто. Качнул и установил последнюю версию Denwer-а (тоже, кстати, замечательный инструмент, когда надо сделать какой-нибудь сайт или просто позагоняться с каким-нибудь скриптом, а организовывать под это хостинг и тратиться на заливку/перезаливку файлов не хочется), качнул последнюю версию движка и файлов руссификации, создал виртуальный хост на денвере, залил туда движок и руссик, зашел на созданный виртуальный хост… И все. Дальше, что называется, интуитивно понятный пользовательский интерфейс, установка практически в несколько кликов (сразу вспомнились Windows Installer, Wise и прочие, где установка сводится в большинстве случаев к нажатию несколько раз кнопки Next).
Hello World Drupal
Сейчас, поработав несколько месяцев с этой системой, я понимаю, что правильнее всего было бы начать с изучения особенностей самого движка. Ноды, таксономия, стандартные модули и т.п. Это самый правильный и самый простой и быстрый путь к изучению данной CMF. Но я избрал другой путь (возможно, ошибусь, но многие программисты, особенно те, у которых еще не так много реального опыта в создании серьезных проектов, где сначала нужно все проработать, и лишь потом уже кодить, выбирают именно этот путь, когда начинают изучать какой-то новый язык или новую платформу) – путь Hello World. Т.е. я решил попробовать создать минимальный модуль, добиться, чтобы Drupal его увидел, и чтобы сам этот модуль что-нибудь выдал мне на экран.
Покопавшись немного в инете, а также в стандартных модулях движка, я довольно быстро добился, чтобы мой новый модуль стал виден в админке. Кстати, поиск информации по Drupal в инете – это отдельная тема (видимо, чуть ниже). Покопавшись еще чуть-чуть, слегка поразобравшись в системе хуков друпала, добавил свой первый пункт в меню и создал свою первую форму (поле ввода и submit).
После этого появились первые впечатления, которые можно примерно выразить так: «покопаться, конечно, придется, и не мало, но если разобраться – все делается легко и просто». В общем на первый взгляд практически ничего сложного.
Работа с БД
Закончив с первым этапом и разобравшись процентов на 50 с движком (так мне тогда казалось – наивный житель крайнего севера) я понял, что пора бы уже приступать к серьезной работе, т.е. к выполнению заказа. Этот проект, как и любой другой мало-мальски сложный проект, нуждался в хранении некоторых данных. Соответственно, пришла пора разбираться с возможностями Drupal по работе с MySQL, а также с файлами install и uninstall. Снова не смог не провести параллель с привычными пакетами установки, которые создают все необходимое для работы при установке и удаляют все свои следы (ну или почти все) в процессе деинсталляции. И опять же все оказалось до жути просто. Все необходимые для работы модуля таблицы и поля тупо забиваются в массивы. Вся дальнейшая работа по выборке и изменению данных практически аналогична стандартным php-шным функциям для работы с MySQL.
Тут стоить особо выделить слово практически. Отличие заключается в возможности создания параметризованных запросов, повышающих безопасность работы с данными. Идея заключается в том, что все значения, которые скрипт передает в запрос, проходят через модуль ядра Друпала, отвечающий за работу с данными, который их фильтрует и преобразует с тем, чтобы исключить возможные SQL-инъекции и прочие неприятные моменты.
Общие впечатления: «просто, привычно, красиво… и, блин, наконец-то можно спокойно работать с данными, не навешивая на каждую процедуру кучу проверок для безопасности этой работы».
Поиск информации
После двух этапов амбиции мои по поводу знаний движка начали очень медленно снижаться (вот они, наконец, те 50%, о которых я думал ранее). Появилась цель поискать побольше хорошей информации и примеров по работе с Drupal. Ничего сложного, подумал я, откывая сразу несколько поисковых систем. Но не тут-то было! Информации на самом деле оказалось много. Даже очень много. Но вся беда в том, что действительно структурированного и систематизированного источника информации я так и не нашел. Попалась одна неплохая книжка, посвященная пятому Drupal, но оказалось, что при переходе на шестую версию CMF была настолько сильно переработана, что многие примеры и Step-by-Step руководства из книжки просто отказывались работать (приходилось рыть в стандартных модулях движка, чтобы найти примеры реализации тех или иных возможностей и адаптировать взятые из книжки примеры под шестую версию).
В итоге при поиске конкретных решений конкретных проблем приходилось собирать по крупицам близкие к теме примеры, модули, записи в форумах и блогах, и соединять их вместе.
Впечатления (коротко): «с миру по нитке (с)».
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.
Пожалуйста, зарегистрируйтесь для комментирования.