¿Qué convenciones de nomenclatura utilizas para las clases de php? [cerrado]

8

Realmente me gusta usar ClassNamesy memberNamescomo convención, pero no estoy seguro de cómo nombraría el archivo que contiene una clase.

Me gusta hacer que mis clases se definan en un archivo con exactamente el mismo nombre que la clase. Pero también me gusta hacer que los archivos php estén en minúsculas. Entonces estoy en conflicto.

Si tengo una clase llamada ProductGroupdebería que ser definido en ProductGroup.php, productgroup.phpo product_group.php?

Sé que no hay una respuesta correcta, así que estoy buscando lo que es más común o tu opinión sobre cuál usar ... ¿cuál usas?

JD Isaacks
fuente

Respuestas:

6

En el trabajo utilizamos guiones bajos como delimitadores de carpetas y nombramos los archivos exactamente igual a la ruta. El cargador automático es muy simple, solo tiene que reemplazar _ con / y agregar '.php' al final. ProjectName_Models_ProductGroup () siempre residirá en ProjectName / Models / ProductGroup.php. Puede crear algunos nombres de clase muy largos, pero realmente no importa con un IDE.

Podría usar la misma convención, pero simplemente ejecute strtolower () antes de incluir el archivo.

Asa Ayers
fuente
3
+1 Esta es la convención adoptada por Zend Framework y parece estar ganando una gran aceptación.
bogeymin
¿quiere decir que nombra la clase exactamente igual que la ruta del archivo?
systemovich
@ Geoffery, sí, es exactamente lo mismo, excepto que las barras se sustituyen por guiones bajos. Todos nuestros servidores funcionan con Linux, por lo que la capitalización es importante y se convierte en un cargador automático muy simple.
Asa Ayers
1

Normalmente pondría una clase 'ProductGroup' en un archivo llamado 'ProductGroupClass.php', típicamente almacenado en una estructura de directorio 'clases'.

Gran maestro B
fuente
11
Creo que es exagerado. Agregar clase a un archivo en un directorio llamado clases parece demasiado redundante
Matt Ellen
1

Intento nombrar mis archivos igual que el nombre de la clase pero en minúsculas. Esto también ayuda con las autoloadfunciones.

Josh K
fuente
1

Yo uso una versión modificada de los estándares de codificación PEAR . Como se mencionó anteriormente, ayuda con la carga automática, y creo que se ve un poco más limpio y más fácil de leer IMO. Básicamente, todo se reduce a decidir qué funciona para usted y cumplirlo. Mientras todo el código tenga el mismo aspecto, al final el resto estará en su lugar.

Sur cristiano
fuente
0

Tengo archivos de clase que abarcan aplicaciones ("bibliotecas") y archivos de clase específicos para aplicaciones. Las bibliotecas obtienen un prefijo para minimizar la posibilidad de conflictos con cualquier código de terceros que podamos incluir, es decir. en "My Sweet Company" podríamos usar el nombre de la clase "MSCPerson" en lugar de "Persona".

Usamos CamelCasenombres de clase, y los archivos de clase se nombran CamelCase.class.php. La mayoría de los archivos de clase tienen la clase única y cualquier excepción específica de clase, pero esta regla no está establecida en piedra. Es bueno tener archivos de clase única para la gffunción de vim .

Annika Backstrom
fuente
0

Personalmente, almaceno una clase nombrada MyClassen un archivo llamado MyClass.class.php, dentro de un classesdirectorio.
Mi función de carga automática es tan simple como

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

No hay una estructura dentro del classesdirectorio, pero en mis proyectos esto nunca ha sido un problema. Si necesita tener subdirectorios, el método sugerido por Asa Ayers es muy práctico y fácil de implementar.

Davide Gualano
fuente