Zend Framework/Zend Layout/Configuración básica
Introducción
[editar]En este ejemplo la parte importante es #/html/index.php aquí tenemos que prestar especial atención al fragmento
reemplazar
Estructura de archivos
[editar]La estructura de los archivos será al siguiente
Archivo:Zft configuracion basica.png
/.htaccess
[editar]Este archivo me permite realizar una redireccion utilizando apache, aqui me indica que cada vez que ingrese a la url http://localhost/zft ( que es donde reside este ejemplo ) nos redireccionara hacia http://localhost/zft/html que es la url base de la aplicacion.
RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ html
/application/controllers/IndexController.php
[editar]Este es el controlador por defecto que se invoca en el caso de no especificar que controlador utilizar. Aqui podemos ver las acciones que el mismo puede realizar.
<?php
/**
* Zend Framework Tutorial
*
* Este tutorial tiene un enfoque pragmatico, lo cual indica una amplia cantidad
* de ejemplos. Este material forma parte del Wikibook en español para ZF.
*
* @author Mario Garcia
* @copyright Copyright (c) 2006-2008 Oh!Studio Media Solutions (http://www.ohstudio.com.ar)
* @license http://www.php.net/license/3_0.txt
*/
class IndexController extends Zend_Controller_Action
{
function init()
{
$response = $this->getResponse();
$response->insert('sidebarLeft', $this->view->render('sidebarLeft.phtml'));
$response->insert('sidebarRight', $this->view->render('sidebarRight.phtml'));
$response->insert('header', $this->view->render('header.phtml'));
$response->insert('footer', $this->view->render('footer.phtml'));
}
public function indexAction()
{
}
}
/application/views/layouts/layout.phtml
[editar]Esta pagina nos permite definir la estructura del sitio, es decir su distribucion topografica, como ser si dispone de un encabezado, pie de pagina, barra lateral izquierada, barra lateral derecha y donde residira el contenido de la accion que se esta ejecutando actualmente.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ZFTutorial :: Enfoque pragmatico</title>
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseUrl();?>/css/grid.css" />
</head>
<body>
<div id="bcss-header">
<!-- bcss-header -->
<?php echo $this->layout()->header ?>
<!-- /bcss-header -->
</div>
<div id="bcss-sidebar-1">
<!-- bcss-sidebar-1 -->
<?php echo $this->layout()->sidebarLeft ?>
<!-- /bcss-sidebar-1 -->
</div>
<div id="bcss-content">
<!-- bcss-content -->
<?php echo $this->layout()->content ?>
<!-- /bcss-content -->
</div>
<div id="bcss-sidebar-2">
<!-- bcss-sidebar-2 -->
<?php echo $this->layout()->sidebarRight ?>
<!-- /bcss-sidebar-2 -->
</div>
<div id="bcss-footer">
<!-- bcss-footer -->
<?php echo $this->layout()->footer ?>
<!-- /bcss-footer -->
</div>
</body>
</html>
/application/views/helpers/BaseUrl.php
[editar]Este helper me permite determinar en forma absoluta la url base de la aplicación.
<?php
/**
* Zend Framework Tutorial
*
* Este tutorial tiene un enfoque pragmatico, lo cual indica una amplia cantidad
* de ejemplos. Este material forma parte del Wikibook en español para ZF.
*
* @author Mario Garcia
* @copyright Copyright (c) 2006-2008 Oh!Studio Media Solutions (http://www.ohstudio.com.ar)
* @license http://www.php.net/license/3_0.txt
*/
class Zend_View_Helper_BaseUrl
{
function baseUrl()
{
$fc = Zend_Controller_Front::getInstance();
$request = $fc->getRequest();
return $request->getBaseUrl();
}
}
/application/views/scripts/sidebarLeft.phtml
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Esta sección incluye el contenido de la parte lateral izquierda del layout.
<ul> <li><a href="<?php echo $this->baseUrl();?>/index/index">home</a></li> <li><a href="http://www.google.com">google</a></li> </ul>
/application/views/scripts/header.phtml
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Esta sección incluye el contenido del encabezado del layout.
<h1>Header</h1>
/application/views/scripts/footer.phtml
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Esta sección incluye el contenido del pie del layout.
<h1>Footer</h1>
/application/views/scripts/sidebarRight.phtml
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Esta sección incluye el contenido de la parte lateral derecha del layout.
<h1>Sidebar Right</h1>
/application/views/scripts/index/index.phtml
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Esta sección incluye el contenido de la accion que se esta ejecutando.
<h1>Hello World !!!</h1>
/html/index.php
[editar]Este archivo es el boot de la aplicacion. Aqui seteamos los archivos de configuracion, acceso a datos, archivos de log, etc. Aqui se setea el frontController y el manejador de layout.
<?php
/**
* Zend Framework Tutorial
*
* Este tutorial tiene un enfoque pragmatico, lo cual indica una amplia cantidad
* de ejemplos. Este material forma parte del Wikibook en español para ZF.
*
* @author Mario Garcia
* @copyright Copyright (c) 2006-2008 Oh!Studio Media Solutions (http://www.ohstudio.com.ar)
* @license http://www.php.net/license/3_0.txt
*/
/*poner comentario*/
define('ROOT_DIR', dirname(dirname(__FILE__)));
// Setup path to the Zend Framework files
set_include_path('.'
. PATH_SEPARATOR . ROOT_DIR.'/lib/'
. PATH_SEPARATOR . get_include_path()
);
require_once 'Zend/Loader.php';
Zend_Loader::registerAutoload();
// Inicializar el MVC
Zend_Layout::startMvc(array('layoutPath' => ROOT_DIR.'/application/views/layouts'));
// Run!
$frontController = Zend_Controller_Front::getInstance();
$frontController->addControllerDirectory(ROOT_DIR.'/application/controllers');
$frontController->throwExceptions(true);
try {
$frontController->dispatch();
} catch(Exception $e) {
echo nl2br($e->__toString());
}
/html/.htaccess
[editar]Este archivo me permite determinar que todo archivo que no sea una imagen, ni js, ni css sea redireccionado hacia index.php.
RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
/html/css/grid.css
[editar]Este archivo forma parte del layout #/application/views/layouts/layout.phtml.
Aquí le aplicamos el estilo para la distribución de las secciones.
/* Site Grid by BoxedCSS.com */
#bcss-header {
width:100%;
background:#FFFFE5; /* you can delete this, it's just a visual aid */
clear:both;
}
#bcss-sidebar-1 {
width:27%;
float:left;
background:#FFE5FF; /* you can delete this, it's just a visual aid */
}
#bcss-sidebar-2 {
width:13%;
float:left;
background:#F7FBEA; /* you can delete this, it's just a visual aid */
}
#bcss-content {
width:60%;
min-height: 400px;
float:left;
background:#E5F2FF; /* you can delete this, it's just a visual aid */
}
#bcss-footer {
width:100%;
clear:both;
background:#FFF2E5; /* you can delete this, it's just a visual aid */
}