Estou querendo começar a construir meus módulos como classes agora que o preguiçoso / carregamento automático está no Drupal 7 e adoraria ver alguns módulos (contrib ou core) que estão fazendo um ótimo trabalho.
Existe uma maneira criativa de integrar uma classe como ganchos? Eu implemento cada recurso como um plugin ctools?
Qualquer transeunte deve observar que o D7 possui novas files[]
declarações nos .info
arquivos do módulo para classes / interfaces de carregamento automático / lento: Gravando arquivos .info (Drupal 7.x) .
A seguir, é uma boa leitura para obter as motivações e a constituição (por assim dizer) da comunidade Drupal da programação Drupal de uma perspectiva orientada a objetos .
Esta é uma pergunta interessante.
A ideia de um módulo Drupal como classe é muito interessante. No entanto, mesmo nos módulos D7, basta implementar funções de gancho que são verificadas pelo nome; portanto, mesmo se você criar uma classe para o seu módulo, ainda precisará implementar funções de gancho para invocá-las.
No entanto, muitos módulos usam classes internamente e expõem a funcionalidade por meio dessas classes. O exemplo mais óbvio são visualizações. Portanto, esse pode ser um bom lugar para procurar. No entanto, esteja ciente de que muitos módulos usam classes à sua maneira, portanto, o que você aprende com as visualizações pode nem sempre ser aplicável.
fonte
A API de entidade (o módulo contrib) permite que você declare uma "classe de entidade" para cada tipo de entidade, para que todo o código relacionado à sua entidade (criar, carregar, salvar, acessar, etc.) possa ser inserido em uma classe (veja como Orgânica Grupos faz isso, por exemplo).
Dito isto, não exagere. Os plug-ins do ctools são uma coisa boa quando você precisa deles (você está escrevendo as próximas exibições, painéis ou regras), mas usar classes em todos os lugares apenas por pureza ideológica não fará muito bem.
fonte