it-swarm-es.com

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

Realmente me gusta usar ClassNames y memberNames como 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 ProductGroup, ¿debería estar definida en ProductGroup.php, productgroup.php o 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?

8
JD Isaacks

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.

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

6
Asa Ayers

Yo uso una versión modificada de PEAR Coding Standards . 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 se vea igual, al final el resto se colocará en su lugar.

1
Christian South

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

1
GrandmasterB

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

1
Josh K

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 CamelCase nombres de clase, y los archivos de clase se denominan 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 vim's gf característica.

0
Annika Backstrom

Personalmente, almaceno una clase llamada MyClass en un archivo llamado MyClass.class.php, dentro de un directorio classes.
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 directorio classes, 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.

0
Davide Gualano