Mostrando las entradas con la etiqueta ZendFramework. Mostrar todas las entradas
Mostrando las entradas con la etiqueta ZendFramework. Mostrar todas las entradas

20111109

Throw a 404 in Zend Framework

This is very easy, just throw an exception in the controller action:


This will generate a 404 page using the ErrorController.

20111007

Zend Framework: How to access your configuration from the application.ini file

There are many ways of getting the config from our application.ini file. The usual way is to load it using Zend_Config in our Boostrap class. The other way is to load it from a parameter in the front controller (Zend_Application put it there).

Using Bootstrap
Add this to your Boostra.php file:


You can fetch the config wherever you want using: 
$config = Zend_Registry::get("config");
Loading from Front controller
From a View action:

From outside the controller:

20101112

Introducción a Zend_Queue

Esta semana tuve que armar un Queue para un proyecto en el que estamos trabajando (WHObyYOU.com) y obviamente intenté hacerlo con Zend_Queue.

En este caso necesitaba consumir en "tiempo real" la Streaming Api de Twitter (ya haré un post sobre esto),  por lo que necesitaba procesar los tweets fuera el proceso que consumía el stream.

Zend_Queue es bastante simple y no tiene mucho misterio. En este caso vamos a usar el adaptador de Base de Datos (Zend_Queue_Adapter_Db) para guardar nuestros mensajes.

Primero creamos las tablas que necesitamos (queue y message), en el caso de mysql:


La defincion de tablas la pueden encontrar en Zend/Queue/Adapter/Db/mysq.sql

Creamos el queue utilizando una clase abstracta:



Luego agreguemos un Tweet al queue, supongamos que un Tweet es una array:



Luego a procesar los mensajes. En el caso de este proyecto, hicimos una tarea programada (cron) que corre cada 30 segundos y procesa el queue. Zend_Queue retorna los mensajes usando Zend_Queue_Message_Iterator (lo pueden ver en la documentacion).



Esto se puede mejorar mucho creando nuestros propios adaptadores, eso vendrá en una próxima entrega.