Quais convenções de nomenclatura você usa para classes php? [fechadas]

8

Eu realmente gosto de usar ClassNamese memberNamescomo convenção, mas não sei como nomearia o arquivo que contém uma classe.

Eu gosto de definir minhas classes em um arquivo com exatamente o mesmo nome da classe. Mas também gosto de criar arquivos php minúsculos. Então, eu estou em conflito.

Se eu tiver uma classe chamada ProductGroupdeve que ser definido em ProductGroup.php, productgroup.phpou product_group.php?

Sei que não há resposta certa, então estou procurando o que é mais comum ou a sua opinião sobre qual usar .. qual você usa?

JD Isaacks
fonte

Respostas:

6

No trabalho, usamos sublinhados como delimitadores de pasta e nomeamos os arquivos exatamente da mesma maneira que o caminho. O carregador automático é muito simples, basta substituir _ por / e adicionar '.php' ao final. ProjectName_Models_ProductGroup () sempre residirá em ProjectName / Models / ProductGroup.php. Pode gerar nomes de classe muito longos, mas isso realmente não importa com um IDE.

Você pode usar a mesma convenção, mas apenas execute strtolower () antes de incluir o arquivo.

Asa Ayers
fonte
3
+1 Esta é a convenção adotada pelo Zend Framework e parece estar ganhando ampla aceitação.
bogeymin
quer dizer que você nomeia a classe exatamente da mesma forma que o caminho do arquivo?
Systemovich 11/11/2010
@ Geoffery, Sim, é exatamente o mesmo, exceto as barras são substituídas por sublinhados. Todos os nossos servidores rodam no Linux, então a capitalização é importante e contribui para um carregador automático muito simples.
Asa Ayers
1

Normalmente, eu colocava uma classe 'ProductGroup' em um arquivo chamado 'ProductGroupClass.php', normalmente armazenado em uma estrutura de diretórios 'classes'.

GrandmasterB
fonte
11
Eu acho que é um exagero. Anexando classe para um arquivo em um diretório chamado aulas parece demasiado redundante
Matt Ellen
1

Tento nomear meus arquivos da mesma forma que o nome da classe, mas em letras minúsculas. Isso também ajuda nas autoloadfunções.

Josh K
fonte
1

Eu uso uma versão modificada dos padrões de codificação PEAR . Como mencionado anteriormente, ajuda no carregamento automático, e acho que parece um pouco mais limpo e fácil de ler IMO. Basicamente, o que se resume é apenas decidir o que funciona para você e cumpri-lo. Desde que todo o código pareça o mesmo, no final, o resto se encaixará.

Christian South
fonte
0

Eu tenho arquivos de classe que abrangem aplicativos ("bibliotecas") e arquivos de classe específicos para aplicativos. As bibliotecas obtêm um prefixo para minimizar o potencial de conflitos com qualquer código de terceiros que possamos incluir, ie. em "My Sweet Company", podemos usar o nome da classe "MSCPerson" em vez de "Person".

Usamos CamelCasenomes de classe e os arquivos de classe são nomeados CamelCase.class.php. A maioria dos arquivos de classe tem a única classe e quaisquer exceções específicas da classe, mas essa regra não está definida. É bom ter arquivos de classe única para o gfrecurso do vim .

Annika Backstrom
fonte
0

Pessoalmente, armazeno uma classe chamada MyClassem um arquivo chamado MyClass.class.php, dentro de um classesdiretório.
Minha função de carregamento automático é tão simples quanto

function __autoload($class) {
    require_once("/classes/".$class.".class.php");
}

Não há estrutura dentro do classesdiretório, mas nos meus projetos isso nunca foi um problema. Se você precisar de subdiretórios, o método sugerido por Asa Ayers é muito prático e fácil de implementar.

Davide Gualano
fonte