Patrones web en PHP

enero 22, 2010

Soy profesor de PHP. Cuando tengo que explicar en clase como se generan páginas web con PHP les planteo el siguiente patrón de diseño: en vez de hacer que cada acción (cada página) corresponde a un fichero con su correspondiente HTML y PHP insertado, trabajad con un solo fichero (index.php) que averigua que ha solicitado el usuario, lo genera, y lo inserta en una única plantilla HTML.

La forma mas sencilla de implementar este patrón, teniendo en cuenta que se trata de personas que están aprediendo PHP y programación es:

$aTextos = {
   "home" =>"texto simulado de bienvenida",
   "clientes"=>"texto simulado de clientes...",
   "404"  =>"texto simulado de 404",
                    ... }
// averiguar petición del usuario
$peticion= ( $_REQUEST["p"] ? $_REQUEST["p"] : "home" );

// generar contenido 
if ( isset( $aTextos[$peticion] ) {
   $contenido = $aTextos[$peticion];
} else {
   $contenido = $aTextos["404"]
}
// ahora empieza la página HTML donde se insertará la variable $contenido
// mediante echo.
?>
html.....
  head...

A lo largo del curso, usamos el mismo patrón, ampliándolo. Por ejemplo, usando ficheros de textos para guardar los datos. De allí se pasa a usar funciones, y bases de datos. También se aborda la seguridad de cada caso.

// generar contenido mediante un fichero de plantilla
if ( !file_exists ( "./textos/$peticion.txt" ) {
   $peticion ="404";
}
$contenido=file_get_contents("./textos/$peticion.txt" );

Lo que mas suele costar al alumnado es entender que para que todo funcione, los enlaces son del tipo
href=”?p=home’ o href=’?p=productos’. Es decir, entender el protocolo HTTP y HTML como una sucesión de peticiones, y enfatizar que cuando clickamos sobre un enlace, lo importante no es cambiar de página, sino que estamos pidiendo algo: la lista de artículos mas populares, ampliar un noticia, etc.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: