Быстрый старт в программинг под Друпал

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

Итак, вы два года работали с Zend Framework, а о Друпале слышали совсем немного. По мере того, как Друпал набирал популярность, вам или вашему боссу удалось подписать полугодичный контракт на разработку интранет-портала с нуля с одной большой компанией.

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

В любом случае, вы полны энтузиазма, так как нашли вот этот график нужды в Drupal-разработчиках:

Но затем вы нашли еще и такой вот график кривой обучения Drupal:

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

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

Модули

  • Из чего состоит модуль?
  • Что такое .info файлы?
  • Как добавлять стили и JS-код в модуль?
  • Что такое хуки?
  • Как добавить свою страницу в систему меню Друпала?
  • Как переопределить вывод на существующей странице сайта?
  • Что такое Forms API?
  • Как изменить произвольную форму созданную другим модулем?
  • Как добавить к этой форме свою проверку и свой обработчик?
  • Как добавить на сайт свой блок из модуля?
  • Как сделать чтобы у этого блока были собственные настройки?
  • Как выполнять дополнительные действия при сохранении ноды?
  • Как отображать свои данные на страницах нод?

Темизация

  • Как работает регистр темизации?
  • Как переопределить стандартный шаблон в теме?
  • Как темизировать вывод в модулях?
  • Как вводить новые шаблоны?
  • Как работают базовые темы?

Код

  • Какие правила кодирования используются при разработке Друпал-проектов?
  • Как работать с SVN и CVS?
  • Как создавать и применять патчи?
  • Какие проблемы существуют при выкладывании проектов на живой сервер?
  • Какой код можно считать безопасным и какие есть методы обеспечения безопасности в Друпале?
  • Как реализовывать unit-тесты в Друпале?

Eсли вы можете ответить на все эти вопросы, свяжитесь с нами, у нас возможно найдется для вас работа.

А что с ответами?

Самым правильным решением было бы купить/одолжить/украсть книгу Pro Drupal Development, Second Edition (если с английским у вас очень плохо, подойдет и русская версия, хоть она и не TRUE). Большим плюсом книги является последовательность изложения материала, и большая точность и достоверность данных.

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

Написание, поддержка и деплоймент кода

Модули и хуки

Система меню

Формы

Ноды

Блоки

Темизация

В довесок, замечательная серия презентаций о темизации с NYC Drupal Meetup:

Качество кода

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