Zend Framework/Zend Log/Configuración básica

Log Configuración Básica

editar

En este ejemplo la parte importante es #/html/index.php aquí tenemos que prestar especial atención al fragmento

//Inicializamos el log
$logger = new Zend_Log();
//Aqui ponemos las salida por archivo
$writer = new Zend_Log_Writer_Stream(ROOT_DIR_LOG.DIRECTORY_SEPARATOR.'/zfw.log');
$logger->addWriter($writer);

//Escribimos un simple mensaje 

$logger->emerg('mensaje tipo [emerg]');
$logger->alert('mensaje tipo [alert]');
$logger->crit('mensaje tipo [crit]');
$logger->err('mensaje tipo [err]');
$logger->warn('mensaje tipo [warn]');
$logger->notice('mensaje tipo [notice]');
$logger->info('mensaje tipo [info]');
$logger->debug('mensaje tipo [debug]');

Aquí en inicializamos el $logger, definimos que tipo de $writer utilizara (recordemos que pueden ser la salida estandar, un archivo, una base de datos, etc). Luego mostramos como utilizar los metodos para el logueo según la precedencia emerg/alert/crit/err/warn/notice/info/debug.

Podemos ver el resultado del logue en #/log/zfw.log.


A todos los invito a suscribirse al grupo Zend Framework Hispano ahí colocaremos los archivos de ejemplos para que puedan ser descargados. Podes bajar el ejemplo aquí zft_log_configuracion_basica.zip

Estructura de archivos

editar

La estructura de los archivos será al siguiente

Archivo:Zft log 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>


/log/zfw.log

editar

Aquí vemos como queda el archivo de log cuando accedemos a la url http://localhost/zft/html/

2008-07-05T11:07:33-03:00 EMERG (0): mensaje tipo [emerg]
2008-07-05T11:07:33-03:00 ALERT (1): mensaje tipo [alert]
2008-07-05T11:07:33-03:00 CRIT (2): mensaje tipo [crit]
2008-07-05T11:07:33-03:00 ERR (3): mensaje tipo [err]
2008-07-05T11:07:33-03:00 WARN (4): mensaje tipo [warn]
2008-07-05T11:07:33-03:00 NOTICE (5): mensaje tipo [notice]
2008-07-05T11:07:33-03:00 INFO (6): mensaje tipo [info]
2008-07-05T11:07:33-03:00 DEBUG (7): mensaje tipo [debug]

/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__)));
define('ROOT_DIR_LOG', ROOT_DIR.DIRECTORY_SEPARATOR.'log');

// 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();


//Inicializamos el log
$logger = new Zend_Log();
//Aqui ponemos las salida por archivo
$writer = new Zend_Log_Writer_Stream(ROOT_DIR_LOG.DIRECTORY_SEPARATOR.'/zfw.log');
$logger->addWriter($writer);

//Escribimos un simple mensaje 

$logger->emerg('mensaje tipo [emerg]');
$logger->alert('mensaje tipo [alert]');
$logger->crit('mensaje tipo [crit]');
$logger->err('mensaje tipo [err]');
$logger->warn('mensaje tipo [warn]');
$logger->notice('mensaje tipo [notice]');
$logger->info('mensaje tipo [info]');
$logger->debug('mensaje tipo [debug]');


// 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 */

	}