Zend Framework utiliza el sistema Modelo-Vista-Controlador, esta arquitectura separa los datos de la lógica de negocio. Para ello ZF propone la construcción de tres Componentes distintos:
Modelo: Recupera los datos, por ejemplo de una BBDD MySql.
Controlador: Utiliza los datos recuperados por el modelo.
Vista: Muestra los datos ya tratados por el controlador.
De tal manera que cada vez que hacemos una petición a ZF, este debe realizar numerosos pasos y consultas antes de mostrar el contenido en un archivo html, consumiendo tiempo y recursos.
Si queremos optimizar la carga de páginas, una buena opción es cachearlas usando Zend_Cache, este lo que hace es generar un archivo .html final que almacena en sus sistema de archivos, de esta manera cada vez que realicemos una petición, carga el .html final i evita volver a generarlo con nuestro sistema de VMC (Vista-Modelo-Controlador).
Para ello, primero debemos configurar que queremos que funcione bajo Zend_Cache, pudiendo configurar donde se guardaran los archivo .html y que vistas y actions queremos que se cacheen.
Observemos el siguiente ejemplo:
Este código se implementa en el bootstrap:
<?php
$frontendOptions = array(
‘lifetime’ => 3200,
‘debug_header’ => true,
‘regexps’ => array(
‘^/$’ => array(‘cache’ => true),
‘^/index’ => array(‘cache’ => true) ,‘^/home => array(‘cache’ => true)
),
‘default_options’ => array(
‘make_id_with_post_variables’ => true,
‘make_id_with_cookie_variables’ => true,
‘cache_with_cookie_variables’ => true
)
);$backendOptions = array( ‘cache_dir’ => ‘/tmp/zend_cache’);
$cache = Zend_Cache::factory(‘Page’, ‘File’,$frontendOptions, $backendOptions);
$cache->start();
?>
En este ejemplo se están cacheando los controladores index y home y que el directorio donde guardará las páginas cacheadas será /tmp/zend_cache.