Image
O primeiro módulo não precisa resolver um problema gigantesco. Uma página interna simples já ensina a estrutura do projeto e evita despejar lógica no tema.
Comece pelo arquivo de informação
name: Exemplo
type: module
description: Exemplo mínimo para Drupal 11.
package: Custom
core_version_requirement: ^11
Crie o módulo em web/modules/custom/exemplo. Depois, defina uma rota e aponte-a para um controller. O controller recebe a requisição e retorna uma render array.
Prefira serviços a atalhos globais
Quando precisar de log, configuração, HTTP client ou outra dependência, injete o serviço no controller. Isso deixa o comportamento explícito e torna testes mais simples.
Mesmo um módulo curto merece permissões para rotas restritas, textos traduzíveis e validação. O objetivo não é burocratizar um exemplo: é aprender uma estrutura que continue boa quando ele crescer.