Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2012, 04:29
Avatar de OsSk4R
OsSk4R
 
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 7 meses
Puntos: 74
¿Cómo implementarlo?

Buenas,
Verán tengo el siguiente caso que resulta que no sé cómo implementarlo correctamente. No sé de que manera o qué habría que usar.

Les comento, tengo 5 clases, las cuales son las siguientes:

Base.php

Código PHP:
Ver original
  1. class Base
  2. {
  3.     //propiedades
  4.    
  5.     //métodos
  6.    
  7.     public function __construct()
  8.     {
  9.         foreach ($this->importar_clases as $clase):
  10.             $this->$clase = new $clase;
  11.         endforeach;
  12.     }
  13. }

ConfigBase.php

Código PHP:
Ver original
  1. class ConfigBase extends Base
  2. {
  3.     public $color = 'blanco';
  4. }

A.php

Código PHP:
Ver original
  1. class A extends ConfigBase
  2. {
  3.     public $color = 'azul';
  4.     public $importar_clases = array('B', 'C');
  5.    
  6.     public function metodoDeA()
  7.     {
  8.         return $this->B->metodoDeB();
  9.     }
  10. }

B.php

Código PHP:
Ver original
  1. class B extends ConfigBase
  2. {
  3.     public $color = 'rojo';
  4.    
  5.     public function metodoDeB()
  6.     {
  7.         //código
  8.     }
  9.  
  10. }

C.php

Código PHP:
Ver original
  1. class C extends ConfigBase
  2. {
  3.     //No específico ningún color y recoje el color de ConfigBase
  4.    
  5.     public function metodoDeC()
  6.     {
  7.         //código
  8.     }
  9. }

Cómo véis, todas heredan de ConfigBase que ésta, a su vez hereda de Base.
Se específica un color para cada clase y aquellas que no tengan ningúno cojen el color de ConfigBase que es blanco.
Bueno, el problema al que me enfrento es, ¿como incluir la clase B y C en la clase A?
Si se fijan en la propiedad "importar_clases" trato de incluir esas clases en A para poder utilizarlas en dicha clase.
Luego, la clase Base es quién importa esas clases.

En fin, como véis es una autentica chapuza por eso me gustaría saber como resolver esto o de que manera sería mejor implementar este sistema.

Gracias por cualquier manita que me podías echar ;)

Saludos