Ver Mensaje Individual
  #11 (permalink)  
Antiguo 15/01/2009, 17:14
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 12 años, 6 meses
Puntos: 32
Respuesta: ¿Redeclarar un clase?

Germán, deberás disculparme, pero esto está mal resuelto.

Como reglas generales para POO bajo PHP

  1. Una clase debe estar en un solo fichero/archivo, y el nombre del fichero/archivo debe ser el mismo que el nombre de la clase.
  2. Cada clase debe manejar su dependencia con las clases de forma independiente de las clases con las cuales interactúa (nada de centralizar en un fichero todas las dependencias de otra clase, etc).
  3. En la relación entre las clases debes usar require_once, lo que resuelve si dos clases que se relacionan entre sí dependen a su vez de la misma clase, por consiguiente solo se invoca una vez.
  4. En un mismo contexto, nunca redefinir la misma clase, ya que pierde consistencia el sistema (por ej, en un sistema contable tener una clase Cliente que según la clase que la llame puedan "reescribir" la clase para que su diseño sea distinto a la clase original).
  5. Anexo: debemos usar todos el mismo estándar de codificación (Zend)

Por lo tanto el ejemplo debería ser:

Código PHP:
require_once 'B.php';
require_once 
'C.php';

$actorB= new B();
$actorC= new C(); 
Cita:
Encapsulando la clase definiendo una constante si ya fue instanciada una vez evita ese error.
Poco importa que este tipo de prácticas las hagan en C, C++ o Pascal, de todas formas conceptualmente son muy desprolijas, en el lenguaje que se haga.

¿Se entiende por qué?
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 16/01/2009 a las 06:54 Razón: mal redactado