En Zend trabajar con feed de datos es realmente simple gracias a su componente Zend\Feed . Vamos a un ejemplo para ver su funcionamiento.
Crearemos un view helper que lea un feed y nos muestre un listado de los links del feed en nuestra web.
<?php
/**
* @author Diego Domínguez
* @copyright
*/
namespace Home\View\Helper;
use Zend\View\Helper\AbstractHelper;
use Zend\Feed\Reader\Reader as FeedReader;
class Feed extends AbstractHelper
{
public $url;
public function __construct($urlFeed)
{
$this->url = $urlFeed;
}
public function getLinks()
{
$feed = FeedReader::import($this->url);
$html = '<ul id="listadoFeed" >';
foreach ($feed as $key => $valor) {
$html.= '<li><a href="'.$valor->getLink().'" target="_blank" ><span class="glyphicon glyphicon-chevron-right"></span> '.$valor->getTitle().'</a></li>';
}
$html.= '</ul>';
return $html;
}
}
Instanciamos la clase FeedReader y llamamos al método import, pasandole como parámetro la url del feed. Después procesamos la información obtenida y generamos el html que devolverá la función. Notamos que la clase nos permite el acceso a cada uno de los items del feed mediante funciones predefinidas de acceso como getLink(), getTitle(), getDescription() .
Lo hacemos accesible desde nuestra vistas configurando en el Module.php:
public function getViewHelperConfig()
{
return array(
'factories' => array(
'feed' => function ($sm) {
$helper = new View\Helper\Feed('http://blog.programadormalaga.com/feed/');
return $helper;
},
),
);
}
Como podemos ver el link del feed es http://blog.programadormalaga.com/feed/ .
Ahora ya solo queda usar el helper en nuestras vistas, para acceder al helper desde la vista lo hacemos de la siguiente manera:
<?
echo $this->feed()->getLinks();
?>
El nombre del helper es la clave con la que lo hemos configurado en el Module.php y la función getLinks() la que nos devuelve el listado.