Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Modelo - Vista - Controlador

Estas en el tema de Modelo - Vista - Controlador en el foro de PHP en Foros del Web. Estoy empezando a implementar el patrón arquitectónico Modelo - Vista - Controlador. Luego de ver varios ejemplos y comenzar a programar me he encontrado con ...
  #1 (permalink)  
Antiguo 07/08/2013, 13:45
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Modelo - Vista - Controlador

Estoy empezando a implementar el patrón arquitectónico Modelo - Vista - Controlador.

Luego de ver varios ejemplos y comenzar a programar me he encontrado con el siguiente error en mi controlador:
Código:
Allowed memory size of 25165824 bytes exhausted (tried to allocate 16384 bytes)
Controlador:

Código PHP:
<?

require_once('modelo_hardware.php');

class 
handler  {
    


public function 
buscar ($codigo) {

//Instanciar objeto de la clase hardware.
$hardware = new hardware;
//Cargar plantilla vacia
$pagina $this->cargar_plantilla('- Buscar Registro -');
//Carga modulo de busqueda
$buscador $this->cargar_pagina('vistas/html/equipo_buscar.html');
//Utiliza el buffer hasta el cierre
ob_start();
//Realiza consulta al modelo
$row $hardware->buscar($codigo);
// Si hay resultados
if ($row) {
    
$titulo 'Resultados de la Búsqueda';
// Incluye vista con los resultados
include 'vistas/html/equipo_resultados.php';
// Carga los resultados almacenados en buffer. Especie de cierre de funcion 'ob_start()'
$table ob_get_clean();
// Reemplaza CONTENIDO
$pagina $this->reemplazar_contenido('/\#CONTENIDO\#/ms'$buscador.$table$pagina);
           }
                
else {
    
//Registra mensaje de error
    
$pagina $this->reemplazar_contenido('/\#CONTENIDO\#/ms',$buscador.'<h4>No se encontraron resultados</h4>'$pagina);
     }
     
// Mostrar pagina final. 
$this->vista_pagina($pagina);

}

public function 
incluir ($datos = array()) {
$hardware = new hardware;
$pagina $this->cargar_plantilla('- Incluir Registro -');
$registrar $this->cargar_pagina('vistas/html/equipo_insertar.html');
ob_start();
 
$result $this->incluir($datos = array());
$pagina $this->reemplazar_contenido('/\#CONTENIDO\#/ms',$registrar,$pagina);
ob_get_clean();
 if (!
$result) {
     echo 
'<script> alert("Error al Insertar") </script>';
               }
 else {
     echo 
'<script> alert("Registro Incluido Satisfactoriamente") </script>';
      }
$this->vista_pagina($pagina);

                                            }


public function 
principal() {
    
    
$pagina $this->cargar_plantilla('Página Principal');
    
$html $this->cargar_pagina('vistas/html/equipo_principal.html');
    
$pagina $this->reemplazar_contenido('/\#CONTENIDO\#/ms',$html,$pagina);
    
$this->vista_pagina ($pagina);
    
                  }

private function 
cargar_plantilla($title 'Sin Titulo') {
    
$pagina $this->cargar_pagina('pagina.php');
    
$menu $this->cargar_pagina('vistas/html/menu.php');
    
$pagina $this->reemplazar_contenido('/\#MENU\#/ms'$menu$pagina);
    
$pagina $this->reemplazar_contenido('/\#TITULO\#/ms'$title$pagina);
    return 
$pagina;
                                                 }
    
    
    
//Carga una pagina y la mantiene en memoria    
private function cargar_pagina($pagina) {
       return 
file_get_contents($pagina);
                                        }
//Muestra la pagina cargada                                                   
private function vista_pagina($html) {
    echo 
$html;
                                     }
                    
// Su nombre lo dice mardito bruto, ¿te dejaron caer chiquito?                                     
private function reemplazar_contenido($reemplaza='/\#CONTENIDO\#/ms',$poresto,$enestapagina) {
return 
preg_replace($reemplaza,$poresto,$enestapagina);    
                                                                                     }                    
}
?>

El módulo de buscar, antes de implementar el de incluir funcionaba a la perfección.
Si necesitan algún otro código para poder dar solución por favor avisar.

Agradezco de antemano cualquier sugerencia.
  #2 (permalink)  
Antiguo 07/08/2013, 13:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Modelo - Vista - Controlador

¿Te has fijado que estás llamando a incluir() dentro del método incluir() lo cual genera un problema de recursividad sin fin?

Código PHP:
Ver original
  1. public function incluir ($datos = array()) {
  2.   $result = $this->incluir($datos = array());
  3. }
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/08/2013, 14:18
Avatar de AnGuisi  
Fecha de Ingreso: julio-2013
Ubicación: San Felipe - Yaracuy
Mensajes: 122
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Modelo - Vista - Controlador

Jajajaja. Cierto, he ahi el problema. Era $hardware->incluir().

Muchas gracias amigo, estoy muy falto de observacion.

GRACIAS GRACIAS GRACIAS.

Etiquetas: controlador, html, modelo, registro
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 07:17.