Después de un pequeño rato de luto, he regresado para seguir quejandome de todo lo que se me ocurra, pero mientras encuentro de que quejarme (el aumento a la gasolina, tortillas, cerveza, etc.) voy a poner un poco de XML para explicar como crear una página web modular (con PHP) leyendo el archivo XML de configuración de la página (esto será por partes).

Me baso en este artículo, con la diferencia de que yo voy a usar un archivo XML con el listado (y configuración) de las ‘páginas’ proporcionadas por la aplicación. Antes de empezar quiero exponer el por qué usare un archivo XML para la configuración en vez de las variables PHP. La primera vez que leí el artículo se me hizo raro, sobre todo porque apenas empezaba a conocer PHP (a estas alturas no sé mucho), depués de algunos intentos le empece a entender, pero el hecho de diseñar la presentación (hojas de estilo) separada de la lógica me hacía muy difícil encontra una manera ordenada de acomodar los datos de x página en una variable (mas bien arreglo) de PHP. A XML lo metí porque una vez que uno estudia acerca de este lenguaje se le hace fácil hacer diseñós de estructuras (no son los mejores porque a uno le falta experiencia) y a mí se me hizo mas intuitivo, aunque hay un poco de problemas porque tenemos que usar librerías para XML (yo usaré DOM), pero no hay problema si uno se anima un poco para esto.

Antes de empezar les quiero recomendar los siguientes programas para desarrollar esto: si no sabes instalar Apache con PHP usa XAMPP, lo que me gusta de este es que no necesita ser instalado (puede correr desde una memoria USB), ya viene configurado PHP (con lo necesario para este ejemplo), hasta MySQL (aunque preferíria PostgreSQL u Oracle) y la verdad tener un servidor web corriendo en tu máquina tiene su gasto de recursos y no siempre estoy programando sobre web. Como esto no va a ser de diseñó gráfico web nos vamos a olvidar de Dreamweaver y usaremos un editor de texto, pero no cualquiera, les recomiendo Notepad++. No necesitas estos programas forzosamente, pero a mí se me han hecho muy comodos y como es básico esto no necesitaremos un IDE para PHP.

Todo en este mundo necesita diseño. Una que hay que entender (desde mi punto de vista) es que una página dinámica se compone de scripts (programas) en el servidor y si quieres scripts en el cliente, la presentación (en el cliente) con hojas de estilo (por ser mas fácil de manejar). Bajo estas ideas desarrolle este archivo XML que contiene el listado de una ‘página’ (ver 1):<?xml version=”1.0″ encoding=”iso-8859-1″?>
<configuration page=”nombre_seccion”>

<scripts>
<client>
<li type=”file”>archivo.js</li>
</client>
<server>
<li type=”file”>archivo.php</li>
</server>
</scripts>
<design>
<li>archivo_estilo.css</li>
</design>
<modules struct=”archivo_base_maquetacion”>
<li div=”destino”>archivo_modulo.ext</li>
</modules>

</configuration>

Uno de los problemas es que vas a un XML por cada’página’ de tu web, podrías meter varias descripciones de ‘página’ en cada XML, pero en este caso el problema es que se usa DOM para leer el XML y esto consume recursos. Mi sugerencia es el que sigue:

<?xml version=”1.0″ encoding=”iso-8859-1″?>
<configuration section=”nombre_seccion”>

<libs>
<scripts>
<client>
<li type=”file”>archivo.js</li>
</client>
<server>
<li type=”file”>archivo.php</li>
</server>
</scripts>
<design>
<li>archivo_estilo.css</li>
</design>
<modules struct=”archivo_base_maquetacion”>
<li div=”destino”>archivo_modulo.ext</li>
</modules>
</libs>

<page name=”nombre_pagina”>
<scripts>
<client>
<li type=”file”>archivo.js</li>
</client>
<server>
<li type=”file”>archivo.php</li>
</server>
</scripts>
<design>
<li>archivo_estilo.css</li>
</design>
<modules struct=”archivo_base_maquetacion”>
<li div=”destino”>archivo_modulo.ext</li>
</modules>
</page>

</configuration>

¿Por qué mas complejo? Porque pienso que una carpeta con una aplicación web usara librerías generales (que esta en la etiqueta <libs>) y varías ‘subpáginas’, pero como no quiero verme muy complicado usaremos la primera versión para desarrollar este ejemplo.

Por el momento es todo, pero el siguiente post pondre el schema (la definición de datos del archivo XML de configuración) y empezare a hablar de PHP y XML (DOM). Pronto pondre los archivos en algún lugar para que puedan descargarlos (porque en este CMS no puedo indentar el código)

Anuncios