Я собираюсь начать собирать свои модули как классы теперь, когда lazy / auto-load в Drupal 7, и я хотел бы взглянуть на некоторые модули (contrib или core), которые отлично справляются с этим.
Есть ли творческий способ интеграции класса в качестве хуков? Я реализую каждую функцию как плагин ctools?
Любой прохожий должен заметить, что в D7 появились новые files[]
объявления в .info
файлах модулей для классов / интерфейсов автоматической / отложенной загрузки: Написание файлов .info (Drupal 7.x) .
Следующее является хорошим чтением, чтобы получить мотивацию и структуру (как бы) от сообщества Drupal, программирование Drupal с объектно-ориентированной точки зрения .
Это интересный вопрос.
Идея модуля Drupal как класса очень интересна. Однако даже в модулях D7 просто реализуются функции подключения, которые проверяются по имени, поэтому даже если вы создаете класс для вашего модуля, вам все равно потребуется реализовать функции подключения для их вызова.
Однако многие модули используют классы внутри и предоставляют функциональность через эти классы. Самый очевидный пример - взгляды. Так что это может быть хорошим местом для поиска. Однако следует помнить, что многие модули используют классы по-своему, поэтому то, что вы узнаете из просмотра представлений, не всегда может быть применимо.
источник
Entity API (модуль contrib) позволяет вам объявлять «класс сущности» для каждого из типов ваших сущностей, поэтому весь код, связанный с вашей сущностью (создание, загрузка, сохранение, доступ и т. Д.), Может переходить в класс (см. «Органический»). Группы это делают, например).
Тем не менее, не переусердствуйте. Плагины ctools полезны, когда они вам нужны (вы пишете следующие представления, панели или правила), но использование классов везде просто для идеологической чистоты не принесет вам большой пользы.
источник