Enrutar aplicaciones con Phalcon PHP
Enrutar aplicaciones con Phalcon PHP
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

He creado una librería que proporciona un carrito de compras para Phalcon haciendo uso de las sesiones que nos proporciona el framework. La clase nos permite crear todas las instancias que necesitemos para así no sólo tener un carrito, sino poder separar las zonas de nuestra aplicación en todas las que necesitemos.

La librería actualmente trabaja con las sesiones de Phalcon, de esta forma, podemos utilizar los adaptadores de sesiones para, por ejemplo, pasar éstas a la base de datos. Para esto simplemente tendríamos que cambiar el adaptador actual por el de base de datos, en un próximo tutorial lo conoceremos.


Aquí la demo trabajando

La clase ShoppingCart cuando ocurre alguna excepción escribe logs dentro de app/logs/shoppingCart.log, si el directorio logs no existe lo crea, de esta forma podrás tener un mayor control sobre las excepciones que ocurren.

Las claves requeridas para cualquier producto son id, qty y price, si el producto tiene otras opciones puedes añadir una clave llamada options la cuál debe ser un array de opciones como en el ejemplo.

Espero que te parezca interesante y sobre todo funcional, en mi repositorio de github tengo los fuentes y el proceso de instalación, este proceso bien puedes llevarlo a cabo mediante composer o si él, aquí el proceso con composer.

Instalación con composer

Crea un archivo composer.json en la raíz de tu proyecto y añade el siguiente código.
 

Ahora simplemente ejecuta composer update y una carpeta llamada vendor con todo lo necesario se habrá creado en la raíz de tu proyecto.

Para poder utilizar la librería sólo necesitamos registrar la clase desde el loader de Phalcon, así que abre el archivo app/config/loader.php y reemplaza el código por el siguiente.

Instalación sin composer

Si por el contrario no quieres utilizar composer, también puedes hacer la instalación, para esto descarga el archivo ShoppingCart.php, crea un nuevo directorio dentro de app llamado library y haz el registro de éste en el archivo app/config/loader.php de la siguiente forma.

Sólo tenemos que registrar el directorio, aunque realmente son dos pasos, Phalcon ya crea el primero al crear un nuevo proyecto, si abres el archivo app/config/config.php verás que dentro del array application ya está registrado el directorio library de la siguiente forma.

Cualquiera que haya sido el proceso de instalación que hayas utilizado, ya puedes utilizar la clase de la siguiente forma.

En este ejemplo creamos un sólo carrito llamado tienda al cuál le ofrecemos toda la funcionalidad disponible.

De todas formas, he creado otro repositorio en github para que podáis clonar en vuestra máquina local y ver el ejemplo completo, en este caso he creado tres instancias, así se puede ver como trabajan de forma independiente, aquí dejo el enlace.

Ejemplo completo en github

Creo que eso es todo, espero que te parezca útil y cualquier problema no dudes en contactar conmigo, saludos.