2009-07-30 34 views

Respuesta

38

No hay diferencia más allá de lo que ves. Los que tienen .class son útiles si usa autoloading y no tienen un directorio específico donde viven sus archivos de clase. De lo contrario, es completamente arbitrario. (Solía ​​usar ClassName.class.php.)

+0

gracias un trino ... eso es lo que estaba buscando – johnnietheblack

+3

En segundo lugar que ... ClassName.class.php. –

5

Prefiero MyClass.php - el mismo nombre exacto (incluyendo mayúsculas) que la clase.

Sin embargo, si está trabajando en un proyecto existente, debe usar el esquema de nombres que tenga el proyecto.

39

¿Cuáles son sus estándares de codificación?

Es común comenzar nombres de clase con una letra mayúscula (por ejemplo: class MyClass). Si hace esto, se deduce que nombraría el archivo MyClass.php. Y MyClass.class.php también funciona.

MyClass.class es una mala idea que podría permitirle a alguien ver su código fuente si solicita ese archivo por su nombre. El uso de la extensión .php garantiza que el usuario solo verá la salida después de que el intérprete de PHP procese el archivo, que para un archivo que no contiene más que una clase es una página en blanco.

Finalmente, mira en autoload(), lo que te ahorra la molestia de llamar al require_once para cargar tu clase.


Actualización: Con PHP estándar de codificación PSR-4, ahora hay una forma semi-oficial para nombrar los archivos de clase. El consejo anterior, para nombrar su archivo de clase igual que la clase con la extensión .php, sigue en pie. Pero ahora se espera que coloques ese archivo de clase en un subdirectorio con el nombre del espacio de nombres de tu clase; PSR-4 requiere que todas sus clases estén contenidas en un espacio de nombres definido por usted.

¿Qué obtienes por esto? ¡Autoloading gratis! Si está utilizando Composer, puede specify the top-level directory for your classes y Composer los autocargará. No más declaraciones require para cargar sus clases.

Si no desea hacer esto, no es necesario que: PSR-4 es una recomendación , no es un requisito.

+0

Nate, he oído hablar de la autocarga ... ¿es estable? el php.net básicamente lo llama un último esfuerzo desesperado? – johnnietheblack

+2

Más uno por el problema de seguridad que se plantea con MyClass.class – benlumley

+0

No he tenido problemas con '__autoload'. El documento lo describe como la última oportunidad, no la última zanja. No creo que eso sea malo. – Nate

1

A menos trabajando en un proyecto o plataforma existente, que tienden a inclinarse hacia un conjunto documentado de convenciones, como Zend de: http://framework.zend.com/manual/en/coding-standard.naming-conventions.html

Plus esto significa que puede utilizar herramientas como PHP Code Sniffer para asegurar que todos se pega a la convención.

De cualquier manera, la consistencia es el nombre del juego.Hace que sea mucho más fácil para otros (incluido usted dentro de unos meses) ponerse al día con una base de código.

Cuestiones relacionadas