Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Como puedo hacer esto

Estas en el tema de Como puedo hacer esto en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola es que quiero hacer esto pero en php puro oop sin framworks $this->load->model('tu_clase_modelo'); osea que yo llame una funcion y despues llame a otra ...
  #1 (permalink)  
Antiguo 23/06/2011, 15:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Como puedo hacer esto

hola es que quiero hacer esto pero en php puro oop sin framworks

$this->load->model('tu_clase_modelo');

osea que yo llame una funcion y despues llame a otra funcion seguida de esta en pocas palabras que la funcion me retorne otro objeto o la misma clase si es posible
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting
  #2 (permalink)  
Antiguo 23/06/2011, 17:39
Avatar de Vitesse92  
Fecha de Ingreso: diciembre-2009
Ubicación: Internet
Mensajes: 145
Antigüedad: 14 años, 4 meses
Puntos: 5
Respuesta: Como puedo hacer esto

vete a la carpeta donde tienes codeigniter luego system\core\Loader.php
y ahí tienes el código fuente! puedes ver ahí la solución a tu inquietud.
__________________
Imagenes de amor y Imagenes de amor . 1313
  #3 (permalink)  
Antiguo 23/06/2011, 19:41
 
Fecha de Ingreso: marzo-2011
Mensajes: 68
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Como puedo hacer esto

$this->load tiene que ser un objeto ^^

Saludos!
  #4 (permalink)  
Antiguo 25/06/2011, 23:01
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Como puedo hacer esto

Hola para hacer esto yo uso esto:
Código PHP:
Ver original
  1. /**
  2.      * Método para cargar los modelos
  3.      *
  4.      * @version 0.1
  5.      * @author Lucas M. sastre
  6.      * @access public
  7.      *
  8.      * @param <string> $nombre
  9.      * @return <void>
  10.      */
  11.     public function modelo($nombre) {
  12.         if(empty($nombre)) {
  13.         return false;
  14.         }
  15.  
  16.         if(is_array($nombre)) {
  17.         foreach($nombre as $modelo) {
  18.             $modelo = ucfirst($modelo);
  19.             //valido si existe el archivo del modelo
  20.             if(!empty($modelo)) {
  21.             if(file_exists($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php')) {
  22.                 //valido si no esta instanciada la clase previamente
  23.                 if(!class_exists($modelo)) {
  24.                 include_once($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php');
  25.                 $this->$modelo = new $modelo();
  26.                 }
  27.                 else {
  28.                 $this->$modelo = new $modelo();
  29.                 }
  30.  
  31.             }
  32.             else {
  33.                 $ruta = $this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php';
  34.                 error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo modelos] No se encuentra el modelo: {$modelo} en {$ruta}- \n", 3,$this->Config->get('root').'/errores.log');
  35.  
  36.                 return false;
  37.             }
  38.             }
  39.         }
  40.         }
  41.         else {
  42.         //valido si existe el archivo del modelo
  43.         $modelo = ucfirst($nombre);    
  44.         if(file_exists($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php')) {                       
  45.             //valido si no esta instanciada la clase previamente
  46.             if(!class_exists(ucfirst($modelo))) {          
  47.             include_once($this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php');
  48.             $this->$modelo = new $modelo();
  49.             }
  50.             else {
  51.             $this->$modelo = new $modelo();
  52.             }          
  53.         }
  54.         else {         
  55.             $ruta = $this->Config->get('root').$this->Config->get('modelsFolder').$modelo.'Model.php';
  56.             error_log("[".date("F j, Y, G:i")."] [Error: E_USER_NOTICE] [tipo modelos]  No se encuentra el modelo: {$modelo} en {$ruta}\n", 3,$this->Config->get('root').'/errores.log');
  57.             //trigger_error("No se encuentra la libreria: {$nombre} en {$ruta}<br/>",E_USER_NOTICE);
  58.             return false;
  59.         }
  60.         }
  61.     }

entonces en mi controlador puedo hacer esto:
Código PHP:
Ver original
  1. $this->modelo('blog'):
  2. $this->Blog->metodoQueUsamos();

o tambien:
Código PHP:
Ver original
  1. $this->modelo(array('blog','post'):
  2. $this->Blog->metodoQueUsamos();
  3. $this->Post->QueUsamos();
  #5 (permalink)  
Antiguo 26/06/2011, 04:41
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Como puedo hacer esto

Puedes mirar en el core de CodeIgniter y utilzar las librerias que necesites, personalizarlas, etc


Un saludo!
  #6 (permalink)  
Antiguo 06/07/2011, 17:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Como puedo hacer esto

ya veo, estuve revisando y se puede hacer tambien con el patron factory pero nada mas llega hasta un solo nivel. saludos y gracias.
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:36.