Foros del Web » Programando para Internet » PHP »

Usar solamente un archivo index para cambiar de contenido según GET

Estas en el tema de Usar solamente un archivo index para cambiar de contenido según GET en el foro de PHP en Foros del Web. Estoy empezando a explorar el patrón de diseño MVC y me surgen algunas dudas. Quiero saber si esto es válido: tengo un index.php en la ...
  #1 (permalink)  
Antiguo 08/08/2013, 19:09
 
Fecha de Ingreso: febrero-2013
Mensajes: 163
Antigüedad: 11 años, 9 meses
Puntos: 1
Usar solamente un archivo index para cambiar de contenido según GET

Estoy empezando a explorar el patrón de diseño MVC y me surgen algunas dudas. Quiero saber si esto es válido: tengo un index.php en la raíz. Puedo usar solamente ese index para mostrar el resto de la página, y que cambie de contenido según variables GET? Por ejemplo, para mostrar una página de Contacto, en vez de crear otra página para 'Contacto', simplemente con escribir index.php?ejecutar=contacto llamo a un controlador para que me muestre el contenido de 'Contacto'? Quedaría algo así, no es el código completo pero es lo que quiero explicar, el código completo tiene más modificaciones:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Ejemplo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>

<div id="contenido">
<?php

if( $_GET['ejecutar']=="contacto" ){
    include_once( "sistema/controlador/contacto.php" );
    $home = new contactoClase();
    $home->cargar(); 
}else{
    include_once( "sistema/controlador/inicio.php" );
    $home = new inicioClase();
    $home->cargar(); 
}

?>
</div>

</body>
</html>
contacto.php e inicio.php serían controladores para procesar modelos y vistas, bueno, eso es lo que entendí del MVC. Y que con index?ejecutar=contacto me muestre un contenido y sin esa variable simplemente muestre el contenido de la página de inicio, eso está bien? tiene sentido? Espero no estar haciendo una torpeza, pero por los ejemplos que estoy viendo me parece que se suele hacer esto y que es más práctico, personalmente me es más cómodo y ordenado, luego pienso adaptar las urls con .htaccess. Pero tal vez estoy terriblemente equivocado, algún consejo?
  #2 (permalink)  
Antiguo 08/08/2013, 19:12
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 8 meses
Puntos: 96
Respuesta: Usar solamente un archivo index para cambiar de contenido según GET

yo lo tengo asi en un proyecto botado:

Código PHP:
Ver original
  1. $id = ! empty($_GET['id']) ? $_GET['id'] : NULL;
  2. $file= "modules/".$id.".php";
  3. if ($id=='') {
  4.     include("modules/home.php");
  5. } elseif (is_file($file)) {
  6.     include($file);
  7. } else {
  8.     include('modules/404.php');
  9. }

espero te sirva y si es asi solo lo adaptas :D
  #3 (permalink)  
Antiguo 08/08/2013, 19:36
 
Fecha de Ingreso: julio-2013
Ubicación: México
Mensajes: 361
Antigüedad: 11 años, 3 meses
Puntos: 55
Respuesta: Usar solamente un archivo index para cambiar de contenido según GET

hola

Para MVC lo importante es que separes cada una de las partes, no hay una forma unica o idealizada del patron.

Podrias hacerlo tambien de la siguiente forma:
Código PHP:
$COMPONENTE=$_GET['contacto'];
$METODO=$_GET['ejecutar'];

switch (
$COMPONENTE){
case 
'contacto':
    switch (
$METODO){
    case 
'ejecutar':
               include_once( 
"sistema/controlador/contacto.php" );
               
$home = new contactoClase();
                
$home->cargar(); 
        break;
       case 
'xxxxxxxx':
       
//CODIGO
       
break;
       }
case 
'inicio':
    switch (
$METODO){
    case 
'ejecutar':
                include_once( 
"sistema/controlador/inicio.php" );
              
$home = new inicioClase();
              
$home->cargar(); 
        break;
        }
 break;

Y con ello puedes tener un Front Controler para todo el sitio.
Espero te sea de ayuda.

Última edición por Erick_MD9; 08/08/2013 a las 19:41

Etiquetas: html, index, páginas, según, solamente, usar, variable
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 09:29.