Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/05/2014, 02:47
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 12 años
Puntos: 84
Respuesta: Duda con funcionamiento y organización de Traits

Muchas gracias a ambos. Solo hay una cosa, respecto a mi primera pregunta no me quedó clara la respuesta.

Estoy probando lo siguiente en cuatro archivos en el mismo directorio:

clase A (archivo ca.php)
Código PHP:
Ver original
  1. class A{
  2.     public function methodA(){
  3.         echo "A";
  4.     }
  5. }

trait B (archivo trait.php)
Código PHP:
Ver original
  1. require_once 'ca.php';
  2.  
  3. trait B{
  4.     public function methodA(){}
  5. }

clase C (archivo cc.php)
Código PHP:
Ver original
  1. require_once 'trait.php';
  2.  
  3. class C{
  4.     use B;
  5. }

archivo action.php (simplemente para instanciar la clase C)

Código PHP:
Ver original
  1. require_once 'cc.php';
  2.  
  3. $o=new C();
  4. $o->methodA();

Y no imprime "A".

En cambio si coloco todo en el mismo archivo

Código PHP:
Ver original
  1. class A{
  2.     public function methodA(){
  3.         echo "A";
  4.     }
  5. }
  6.  
  7. trait B{
  8.     public function methodA(){}
  9. }
  10.  
  11. class C{
  12.     use B;
  13. }
  14.  
  15. $o=new C();
  16. $o->methodA();

Sí imprime "A"

¿Por qué sucede esto?

En los ejemplos del manual lo explican como si todo fuera en el mismo archivo, pero ¿cómo utilizar los traits cuando los ubicamos en archivos distintos?

Un saludo! :D
__________________
Ayúdame a hacerlo por mi mismo.