2011-04-13 42 views
5

Me preguntaba si hay algo de malo en tener dos clases con el mismo nombre en PHP si están en subcarpetas diferentes.¿Es posible tener dos clases con el mismo nombre si están en carpetas diferentes?

- Aparte del obvio 'factor humano' de editar el archivo equivocado por error.

@admin: He buscado otras publicaciones relacionadas con esto, aquí y en otras partes de la web, pero no encontré ninguna que respondiera a esta pregunta específica.

@everyone: Sin embargo, encontré esto (php - Autoload classes from different folders) muy útil, y de hecho resolvió one of my other questions!

Respuesta

6

Esto es posible tener clases con el mismo nombre incluso en la misma carpeta.

Pero asegúrese de haber cargado solo una clase en el script PHP a la vez.

No se pueden cargar en el mismo script al mismo tiempo.

PHP no sabe si ha creado dos clases con el mismo nombre, pero el hecho es que PHP no las cargará en el mismo script. Puedes usar una clase a la vez.

También puede mirar namespaces en php.

+0

Gracias voy a mirar en el espacio de nombres. ¡Y gracias a todos los demás que también respondieron! En mi caso, creo que es poco probable que necesite dos clases con el mismo nombre, pero pensé que sería inteligente averiguar ahora en lugar de hacerlo si es probable que haya problemas. – Chris

+0

@chris: Su bienvenida, si recibe ayuda aquí. Considere aceptar una de las respuestas. Puede aceptar haciendo clic en el signo de la flecha derecha a la izquierda de la respuesta. Gracias. –

0

Creo que tendrás un conflicto cuando instancias estas clases. En realidad, nunca lo he probado, pero PHP no se comporta como Java, donde puedes poner clases con el mismo nombre en diferentes paquetes y especificar el paquete para diferenciarlos al crear instancias ...

0

De hecho, puedes, pero piensa también acerca de la sobrecarga, y sobre las interfaces ...

0

Por supuesto, puede crear los archivos en la misma carpeta o carpetas diferentes con los mismos nombres de clase, pero solo puede usar una implementación en un archivo.

Si realmente necesita dar a las dos clases del mismo nombre y debe usarlos en un archivo, una solución podría ser espacios de nombres ... http://www.php.net/manual/en/language.namespaces.rationale.php

0

Un 'factor humano' es el punto.
No solo editando un problema de archivo incorrecto sino también trabajando con estas clases en el mismo código sería un desastre total.

+0

Es cierto, recién comencé a crear aplicaciones web con OOPHP y MVC, y ha sido una curva de aprendizaje fantástica y gratificante. Pero la verdadera lección, como usted alude, es la capacidad de administración para el equipo de desarrollo. Creo que usar siempre nombres de clase únicos sería una buena práctica si nada más. ;) – Chris

Cuestiones relacionadas