Обновление модулей для Drupal 7

С последним выходом новой версии Drupal 7, сообщество должно сфокусироваться на обновлении существующих модулей Drupal 6 до Drupal 7.

Уже обновлен модуль Print от 4,7 до Drupal 5 и до Drupal 6, и я могу вам сказать, что на этот раз процесс перехода будет и сложнее и проще.

Обновление модулей для Drupal 7 намного сложнее.

Процесс обновления с Drupal 5.x до версии Drupal 6.x содержит только 82 изменений в API. При обновлении с Drupal 6.x до 7.x нужно учитывать более чем 200 изменений.

Одним из наиболее заметных изменений является введение нового слоя базы данных (database API), вот пример кода в Drupal 6:

db_query("INSERT INTO {mytable} (intvar, stringvar, floatvar) VALUES (%d, '%s', %f)",
  5, 'hello world', 3.14);
$id = db_last_insert_id();

в Drupal 7 выглядит так:

$id = db_insert('mytable')
   ->fields(array(
     'intvar' => 5,
     'stringvar' => 'hello world',
     'floatvar' => 3.14,
   ))
   ->execute();

За более подробной информацией обратитесь к полной документации нового API базы данных.

Еще одно очень заметное изменение - это удаление $op параметра в важных хуках, таких как hook_nodeapi() который в настоящее время заменен на hook_node_delete(), hook_node_insert(), hook_node_load() и т.д.

Я мог бы продолжать описывать оставшиеся 200+ изменений, но, к счастью эта информация уже существует на drupal.org.

Обновление модулей для Drupal 7 немного легче.

Хорошей новостью является то, что разработчики модуля Сoder разработали еще два инструмента, которые упрощают процесс обновления для вас: Coder Review и Coder Upgrade.

Coder review уже содержит правила о том, как обновлять модули с 5.x до версии 6.x, с 4.7.x до 5.x, стандарты кодирования, и т.д. Есть уже несколько правил для определения, что вам нужно сделать, чтобы обновить модуль до Drupal 7. К сожалению, полный список правил до сих пор не завершен. Тем не менее, пропускать через него ваш модуль будет полезным, чтобы обнаружить код, который несовместим с Drupal 7.

На самом деле самая приятая часть - это новый Coder Upgrade модуль. Этот под-модуль более завершен и может конвертировать код автоматически, просто разместите существующий модуль для Drupal 6 в определенном каталоге, выберите его через пользовательский интерфейс модуля Coder Upgrade и нажмите кнопку обработки. Как по волшебству, вы получите набор файлов, которые включают патч для вашего модуля и (надеюсь) совместимую с Drupal 7 версию. Не забывайте следовать инструкциям модуля и запустить потом Coder Review, чтобы выделить места в коде, требующие ручного вмешательства. После этого можно устанавливать модуль для Drupal 7 и тестировать его.

Если вы зантересовались модулем Coder Upgrade, есть сайт, который позволяет запускать Coder Upgrade удаленно.

Источник.