Crear feed RSS con Laravel

Hay veces, que dependiendo el proyecto que estemos desarrollando, puede ser interesante tener un feed RSS (p.e.: para un blog) para que nuestros visitantes se puedan suscribir a nuestro canal RSS a través de lectores RSS (como Feedly) y reciban las nuevas publicaciones sin necesidad de entrar en la web para ver si se ha publicado algo nuevo. En esta entrada, vamos a ver cómo crear un feed RSS con Laravel.

Primero de todo, vamos a instalar un paquete que nos va a facilitar mucho el trabajo. El paquete se llama laravel-feed. Yo he escogido este paquete para el ejemplo, pero hay otro que también puede ser interesante, se llama igual, pero está hecho por Spatie (ya he hecho unos posts sobre uno de sus paquetes, en concreto sobre el paquete de permisos y roles). Entonces, para instalarlo ejecutamos el siguiente comando (dependiendo la versión de Laravel que tengas, tendrás que instalar una versión del paquete u otra):

Una vez finalice la instalación, ejecutamos el siguiente comando para que nos publique las vistas del paquete en nuestro proyecto y podamos editarlas, si queremos. Si no vamos a editarlas, no hace falta, es opcional:

Y por último, tenemos que ir al archivo app.php y añadir el siguiente alias en el array:

Con todo esto, ya tendríamos el paquete listo para poderlo utilizar. Ahora vamos a generar el feed RSS. Primero de todo creamos un controlador llamado RssController.php o lo puedes hacer como lo hacen en la documentación, crear la lógica en la ruta. A mi no me gusta hacerlo así, prefiero ponerla en un controlador:

Una vez tenemos esto, vamos al archivo de rutas web.php y añadimos la ruta:

Si vamos a la ruta http://localhost:8000/feed veremos el feed RSS generado y los visitantes ya se podrán suscribir al feed RSS de nuestra web.

El paquete viene con un helper para generar la ruta hacia nuestro feed y deberemos ponerlo entre los tags head para que los lectores de RSS detecten automáticamente el feed RSS de nuestra web:

Le indicamos la ruta, el tipo, el título y el idioma.

 

Una cosa interesante que tiene el paquete es que viene integrado un control de cache, ésto nos servirá para reducir las consultas a la base de datos cada vez que se consulte el RSS. Laravel permite diferentes formas de cachear, aquí lo explica.

Para que el paquete nos cachée los resultados, tendremos que añadir estas líneas al método creado anteriormente:

Esto sería un ejemplo de como generar un feed RSS básico. Si quieres profundizar más, te recomiendo que eches un vistazo a la documentación del paquete.


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

Deja una respuesta

  Acepto la política de privacidad