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?

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.


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'.


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.


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á.


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 .


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.