Primeiro, ignore o prefixo class-
. Isso vem da abordagem de código processual puro do WordPress, as classes são usadas como contêineres para código procedural, não para objetos reais e a maioria dos arquivos não contém classes ou classes e outros códigos juntos. Não faz sentido quando todos os seus arquivos contêm apenas uma classe e nada mais.
Se você seguisse esse padrão, teria de usar interface-foo.php
e trait-bar.php
. Isso não parece ridículo, torna o carregamento automático mais difícil do que o necessário.
A maneira mais fácil de separar namespaces e nomes de classes / interfaces / características é (pela minha experiência) atribuir namespaces a nomes de diretórios e nomes de classes a nomes de arquivos. Isso torna muito fácil mapear a classe solicitada para uma determinada estrutura de arquivos no carregador automático: basta converter \
para /
, anexar .php
e carregar o arquivo.
Isso também facilita o armazenamento em cache das pesquisas: para cada diretório / namespace, é possível buscar todos os arquivos existentes na primeira vez que o diretório é solicitado e, para chamadas posteriores, você pode reutilizar essa lista sem perguntar para file_exists()
de cada vez.