Como hacer la semántica web fácil con zenphp

Semántica web

Si tenemos nuestra aplicación web montada, lo único que tenemosque hacer es configurar los activadores (rutas de .htaccess de Apache) de las acciones (funciones PHP) de los modelos (clases PHP que extienden de zen_modelo_datos) de datos o las funciones de los visualizadores (clases PHP) de forma que podemos incluso crear nuestra propia gramática: loquesea.es/hablar/con/Manolo –> nos contactaría con Manolo 😉

Ejemplo

Como siempre, veamos un ejemplo para comprender mejor la idea:

Tenemos una aplicación (zen_aplicacion) instanciada en index.php con la variable $app , ahora ,dentro de esta hay un visualizador por defecto llamado html_aplicacion en $app->html, bien, pues ahora sólo tenemos que decirle a Apache que nos redirija las entradas de direcciones con un .html al final, a las funciones de $app->html , como por ejemplo: Una típica función para ver un producto:

* En tu .htaccess (después de poner “Options +FollowSymLinks” y “RewriteEngine on” ):

RewriteRule ^productos\/(.*)\.html index.php/ver_producto/$1/

Con esta regla se llama a index.php donde se instancia $app y se llama a $app->enrutador->delegar() que analiza el resto de la dirección, es decir, productos/fichero.html…de forma que llama a la función productos ,si no existe llama al modelo con nombre productos, en nuestro caso es una función del visualizador de la aplicación (más sencillo),

Código

* Esto es lo único que tiene la función

echo $this->plantilla->devolver_contenido(“productos/”.zen_sanar($datos[1]).”.html”);

si queréis ser más profesionales, crear una plantilla HTML y meterle los datos usando las #etiquetas# ya explicadas en otros posts, asi como hacer comprobaciones de existencia del fichero .HTML y poner una plantilla tipo producto_inexistente.html si no se encuentra… (típico)

$p = new zen_plantilla();
$this->c =& $this->padre->padre->contenido; //array de contenido de la web
if ($p->cargar(“productos/”.zen_sanar($datos[1]).”.html”))
$this->c[‘contenido’] = $p->devolver_contenido(“productos/”.zen_sanar($datos[1]).”.html”);
else
$this->c[‘contenido’] = $p->devolver_contenido(“productos/no_encontrado.html”);
parent::index(); //Muestra la plantilla base_web.html y reemplaza etiquetas, etc.

Y así tendréis algo como lo siguiente:

http://www.empresayjuventud.com/productos/frescos/sandias.html

Seguramente ,se puede hacer mucho más fácil, pero ,también seguramente habrá alguien por ahi que lo escriba, saludos!
El conjunto de administración está siendo terminado, espero poder publicarlo pronto…

Pisando el acelerador con zenphp

Hay un nuevo documento en la sección de documentos de zenphp en la forja
https://forja.rediris.es/docman/?group_id=252
donde se exponen los distintos métodos para acelerar PHP y zenphp al máximo en nuestro servidor asi como nuestras aplicaciones! 🙂

Ésta es la dirección:
https://forja.rediris.es/docman/view.php/252/521/AceleradoresPHP_final.pdf

He escrito además un pequeño artículo acerca de los aceleradores en forma de plugin para WordPress, en la web de la comunidad de PHP granadina : GranadaPHP.

Que la santa semana esté con vosotros ,aquí y ahora.

Saludos.