2009-04-21 14 views
6

Actualmente empleamos Zend Framework y el patrón MVC en nuestro sitio web. Tenemos un gran número de páginas estáticas, que están en áreas aleatorias del sitio. Estas páginas no son simples páginas HTML que pueden omitir ZF ... participarían en Zend_Layout, etc.Cómo atender páginas estáticas con Zend Framework

¿Cuál es la mejor manera de publicar estas páginas sin crear una acción/controlador separado para cada página aleatoria? Rehaciendo el diseño de las páginas para que todas caigan bajo un controlador "misc" o algo no es una opción, las páginas deben permanecer donde están en nuestra jerarquía de URL para propósitos de SEO.

+0

estático pero al azar? no lo entiendo? ¿Qué hay de servirles como incluye desde un controler/acción? – markus

+1

Son estáticos en el sentido de que no hay una buena razón para tener un controlador completo y ver la acción asociada a ellos. Y hay cientos de páginas diseminadas por el sitio. Básicamente deben ser html sencillos, pero quiero que el diseño se inyecte, junto con otras funcionalidades específicas de ZF intactas. –

+0

Estoy casi seguro de que se refiere a un controlador de página estático que sirve vistas basadas en url. Al igual que domain.com/pages/about/us, se publicará la /views/pages/about/us.html vista. Creo que la mayoría de los frameworks vienen con esto fuera de la caja, ¿por qué Zend lo hace difícil? Ref: http://book.cakephp.org/view/958/The-Pages-Controller –

Respuesta

6

Si entiendo la pregunta correctamente:

  • Usted tiene un montón de contenido estático que desea aplicar a su diseño.
  • Estas páginas de contenido estático ya tienen URLs existentes que no desea romper

Zend realidad separa URL desde $ controller-> acción(), da la casualidad la parte MVC de Zend tiene un valor predeterminado configurando para hacer esto. Aún puede crear un controlador "misc" que recibe cualquier url aleatorio, solo necesita definir algunas rutas personalizadas.

http://framework.zend.com/manual/en/zend.controller.router.html

ejemplo citar Zend Framework sitio:

$route = new Zend_Controller_Router_Route_Static(
    'login', 
    array('controller' => 'auth', 'action' => 'login') 
); 
$router->addRoute('login', $route); 

La ruta anterior coincidirá con una URL de http://domain.com/login, y despachar a AuthController :: loginAction().

Se pueden encontrar ejemplos más ambiciosos usando la coincidencia de patrones en la misma página.