Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2009, 15:53
Avatar de destor77
destor77
 
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
cargar modelos en un solo lugar

Hola,
en mis controladores actualmente tengo que crear una instancia del modelo en cada metodo que tengo que usar por ejemplo:
Código PHP:
Ver original
  1. class ejemploController extends Controller{
  2. public function index(){
  3. $modelo = new ClaseModelo();
  4. $modelo->llamoaunmetodo();
  5. }
  6. public function otroMetodo(){
  7. $modelo = new ClaseModelo();
  8. $modelo->llamoaotrometodo();
  9. }
y anda todo bien
Bien en mi clase controller tengo esto:
Código PHP:
Ver original
  1. //Incluimos los modelos        
  2.  $this->Utilidades->recursiveInclude($config->get('modelsFolder'));

el codigo de recursiveInclue es :
Código PHP:
Ver original
  1. /**
  2.      * funcion para cargar recursivamente clases.
  3.      *
  4.      * @access  public
  5.      * @param string $path
  6.      */
  7.     public function recursiveInclude($path) {
  8.         if(!empty($path)){ 
  9.             $dir    = scandir($path);
  10.             if ( (is_array($dir)) && (count($dir) > 0) )
  11.             foreach($dir as $k => $v)
  12.             if ( !(is_dir($path.$v)) && ( file_exists($path.$v) ) && ($v != ".")  && ($v != "..") && (strtolower(end(explode(".", $v))) == 'php') )
  13.             include_once($path.$v);
  14.             elseif ( is_dir($path.$v) && ($v != ".") && ($v != "..") && ($v != 'smarty') )
  15.             recursiveInclude($path.$v."/");
  16.         }
  17.     }
que lo que hace es un include de todas las clases de un directorio este caso la carpeta modelos.

Bien lo que he intentado hacer (sin exito) es esto:
Código PHP:
Ver original
  1. class ejemploController extends Controller{
  2. private $modelo;
  3.         public function __construct(){
  4.             $this->modelo = new ClaseModelo();
  5.         }
  6.  
  7. public function index(){
  8. $this->modelo->metodo;
  9. }
  10. }

pero cuando hago esto me sale este error:
Fatal error: Class 'ClaseModelo' not found in D:\xampp\htdocs\ampa\admin\controladores\ejemplo\e jemploController.php on line 14
la linea 14 es:
Código PHP:
Ver original
  1. $this->modelo = new ClaseModelo();

como puedo instanciar un modelo y que se pueda usar en todos los metodos de un controlador?
desde ya muchas gracias