Foros del Web » Programando para Internet » PHP » CodeIgniter »

Cuantos controladores? Uno global para el proyecto o uno por pagina del proyecto

Estas en el tema de Cuantos controladores? Uno global para el proyecto o uno por pagina del proyecto en el foro de CodeIgniter en Foros del Web. Hola, Estoy empezando con MVC y CodeIgniter, y tengo la siguiente duda que no he conseguido resolver leyendo. Tengo esta estructura de página: Pagina -->Seccion1 ...
  #1 (permalink)  
Antiguo 09/07/2011, 09:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Cuantos controladores? Uno global para el proyecto o uno por pagina del proyecto

Hola,

Estoy empezando con MVC y CodeIgniter, y tengo la siguiente duda que no he conseguido resolver leyendo.

Tengo esta estructura de página:

Pagina

-->Seccion1
-->SubSeccion1.1

-->Seccion2
-->SubSeccion2.1

-->Seccion3
-->SubSeccion3.1

Tengo un controlador Global asi:

Código PHP:

<?php

class miproyecto extends CI_Controller {

    function 
__construct(){
        
parent::__construct();
    }
    
    public function 
index(){        
        
$this->load->view('header');
        
$this->load->view('seccion1');
        
$this->load->view('footer');
    }
    
    public function 
seccion2(){
        
$this->load->view('header');
        
$this->load->view('seccion2');
        
$this->load->view('footer');
    }
    
    public function 
seccion3(){
        
$this->load->view('header');
        
$this->load->view('seccion3');
        
$this->load->view('footer');
    }
}

?>
Ahora bien cuando entro en localhost/miproyecto si se ve bien, pero cuando en el menu clicko en otra seccion no se muestra(Error 404). He probado a ver si estaba mal el enlace del menu y he escrito directamente en el navegador localhost/miproyecto/seccion2 y me sale el mismo error :(

Debo crear un controlador por cada seccion/pagina que tengo? o puedo tener uno global. Espero me puedan ayudar o enlazar a algun tutorial donde pueda verlo claramente, pues hasta ahroa no fue asi...

Un saludo y gracias.
  #2 (permalink)  
Antiguo 09/07/2011, 09:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

jeje solucionado....era que no ponia bien la direccion en el navegador.

Gracias.
  #3 (permalink)  
Antiguo 09/07/2011, 19:36
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Te hago una pregunta Krlinhos: y como se comunican el Global con los otros controllers ? como lo explicarias en terminos de MVC ?

un saludo
__________________
Salu2!
  #4 (permalink)  
Antiguo 10/07/2011, 13:51
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Umm lo de "Global" es que siemplemente tengo un solo controlador para toda mi pagina, y en el tengo todas las funciones que llaman a las distinas secciones. Nose si es eso lo que tu preguntabas.

En vez de tener

class Seccion1 extends Controller y class Seccion2 extends Controller, tengo un class Proyecto extends Controller y en el tengo una funcion por cada seccion que necesito.

No se si esto seria lo mas correcto o no, ya te digo que ando empezando y no se muy bien como va todo esto :)

Saludos!
  #5 (permalink)  
Antiguo 10/07/2011, 14:06
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Ahora entiendo...Gracias!

Tampoco se si esta bien o no.......... tambien empezando
__________________
Salu2!
  #6 (permalink)  
Antiguo 10/07/2011, 14:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 79
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Italico,

yo lo hice asi, porque el otro dia fui a ver a un conocido que hace paginas web y juraria que cuando me enseño su control, lo tenia asi, uno por cada proyecto. No se si alguien nos podra orientar un poco más.

Saludos! :)
  #7 (permalink)  
Antiguo 10/07/2011, 19:07
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: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

esta bien de ambas forma, por ahi por una cuestión de organización lo mejor es separar los controladores y no tener uno solo, supongamos que tiene un proyecto con 100 secciones y por cada sección tienes al menos 3 acciones, estamos hablando de un archivo con 300 funciones, lo cual se puede hacer muy pesado el archivo o muy engorroso depurarlo, a comparación de tener 300 archivos con 3 acciones, y si tenes que tocar la accion guardar de la seccion 78, vas al controlador 78 y listo.
  #8 (permalink)  
Antiguo 10/07/2011, 22:09
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 20 años, 11 meses
Puntos: 60
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

De hecho es lo que trata de resolver el patrón Front Controller

http://java.sun.com/blueprints/corej...ontroller.html

http://web2development.blogspot.com/...ontroller.html
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #9 (permalink)  
Antiguo 10/07/2011, 22:15
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Cita:
Iniciado por _ssx Ver Mensaje
De hecho es lo que trata de resolver el patrón Front Controller
Pero obviamente CI como todo FW tiene su FRONT CONTROLLER
__________________
Salu2!
  #10 (permalink)  
Antiguo 11/07/2011, 07:35
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: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

esto es lo mismo que si queres usar HMVC en CI, si no lo usas podes tener todos tu métodos en un solo controller, o bien separarlo por módulos para estar mas ordenados, para gusto estan los colores dicen jejeje
  #11 (permalink)  
Antiguo 11/07/2011, 08:37
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Cuantos controladores? Uno global para el proyecto o uno por pagina del pr

Cita:
Iniciado por destor77 Ver Mensaje
esta bien de ambas forma, por ahi por una cuestión de organización lo mejor es separar los controladores y no tener uno solo, supongamos que tiene un proyecto con 100 secciones y por cada sección tienes al menos 3 acciones, estamos hablando de un archivo con 300 funciones, lo cual se puede hacer muy pesado el archivo o muy engorroso depurarlo, a comparación de tener 300 archivos con 3 acciones, y si tenes que tocar la accion guardar de la seccion 78, vas al controlador 78 y listo.
Ahora... por que en lugar de una clase con cientos de metodos en un proyecto grande.......... como bien dice destor77 ... no crear una clase MY_Controller y extenderla ?

Yo hago esto:

Código PHP:
<?php (defined('BASEPATH')) OR exit('No direct script access allowed');

// funcionamiento: extender a MY_Controller en vez de CI_Controller

class MY_Controller extends CI_Controller{

  protected 
$data=array();

  function 
__construct(){    
    
parent::__construct();                        
      if (
is_logged()){     
            
/* especifico usuario logueado */
      
}    
  }
  
      protected function 
view($tpl='corp',$data=null){
      if (
$data==null){
        
$data $this->data;
      }      
      
$this->load->view('tpl/corp/cuts/tpl_begin.php',$data);    $this->load->view('tpl/corp/cuts/tpl_header.php');     

          
/* muestro de forma condicional algunas vistas */
      
if (!is_first_time()){  
        
$this->load->view('tpl/corp/cuts/tpl_feature.php');
          }        
      
      
$this->load->view('tpl/corp/cuts/tpl_content.php',$data);
      
         
/* muestro de forma condicional algunas vistas */
      
if (!is_logged()){  
        
$this->load->view('tpl/corp/cuts/tpl_sidebar.php',$data);
      }    
      
      
$this->load->view('tpl/corp/cuts/tpl_footer.php');
    }

}
//  end class MY_Controller
Donde dice 'tpl/corp/cuts/algo.php' obviamente debe ser usando $tpl
__________________
Salu2!

Última edición por Italico76; 11/07/2011 a las 08:42

Etiquetas: controladores, frameworks-y-php-orientado-a-objetos, global, mvc, php, proyecto
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 04:08.