PHP

105 entradas

Symfony enviando emails

Symfony: tutorial 12: los emails

Ya estoy por aquí de nuevo, escribiendo otro tutorial, code-kata o howto.. mientras que me pongo al día repasando sobre Symfony 4, y revisando hoy cómo se envían los correos electrónicos. Symfony nos recomienda que usemos el popular componente SwiftMailer, que podemos incoporar a nuestros proyectos con un simple comando de Composer. Desde una web tenemos varias formas de enviar correos, pero pienso que la forma más profesional es con el protocolo SMTP, así te independizas del servidor donde corre tu web, desacoplas aplicación web del servidor de correo.. pudiendo enviar el correo electrónico mediante casi cualquier servidor estándar de correo electrónico. Recapitulando, de nuevo en Symfony tenemos otro componente para PHP con el que se convierte en algo trivial el envío de correos electrónicos. No tanto el envío de muchos emails. Pero si combinamos este post, con otros anteriores sobre Doctrine, no debería de serte muy complicado el implementar una cola de emails. Así puedes ir enviando los emails poco a poco si es que estás trabajando en una aplicación web que tiene que enviar muuuuuuuuchos emails. Ahí lo dejo para otro post 😉 vamos con el tutorial para comenzar con los emails.. Vamos al grano, creando el proyecto […]

Symfony 4, el manejo de formularios

Symfony: tutorial 11: los formularios

Otra de las mejores cosas que tiene Symfony es el manejo y creación de los formularios. Podríamos seguir creando formularios a la antigua, mediante HTML, construyendo poco a poco dichos formularios. Pero si quieres ser realmente productivo construyendo aplicaciones que gestionan mucha información, interactuando con los usuarios, deberías de usar ésta herramienta y aprovechar lo que Symfony nos ofrece.

Symfony entornos y configuraciones

Symfony: tutorial 9: los entornos, y las configuraciones

Continuando con el repaso de Symfony 4, Symfony Flex, sigo con las configuraciones y entornos de ejecución. Como buena estrategia de desarrollo, tenemos que tener presente el establecer varios entornos en los que vamos a trabajar en los proyectos sobre Symony. Es decir, por defecto, Symfony te invita a usar 3 entornos: Desarrollo, cuyo nombre en clave es dev, del inglés develop. Pruebas, cuyo nombre es test, que podemos correr en local o en un entorno con CI y CD. Producción, con nombre en clave prod, que será en el servidor en Internet, aunque podemos simularlo en local también.

Symfony Assets

Symfony: tutorial 8: los assets

Otro día más, otro post más, ahora repasando en Symfony 4 cómo incluimos los ficheros en las páginas web. A saber, los assets son los ficheros CSS, Javascript e imágenes que usamos en el front-end. Ahora se ha simplificado un poco más todo el manejo de éstos. Podemos evitarnos el cacheado en los navegadores dándoles un número o nombre de versión a todos los assets. Así con cada despliegue, configuramos un número nuevo de versión de assets, y se le añadirá la coletilla a los ficheros assets incluidos en toda la web. Esto forzará a los navegadores a descargarse la nueva versión de estos assets.

API Platform filtering

Cómo filtrar el acceso a los elementos de la API Platform para Symfony

Vengo a traer un pequeño truco que es algo complicado de encontrar. Es decir, traigo un HOWTO para una configuración en concreto de una joya del software. Se trata de la API Platform para Symfony, con la que implementamos en muy poco tiempo una API web en un proyecto completo. Con esta API Platform tendremos acceso remoto, mediante las clásicas llamadas GET, POST, PUT, DELETE a las entidades del proyecto. Podemos limitar el acceso a cada usuario a cada elemento de una entidad de la que sea propietario.

Magento funcionamiento interno

Magento 1: los índices, qué son y cómo reindexar

Magento es un gran CMS para montar tiendas online. Está muy desarrollado teniendo en cuenta el SEO, el marketing, para tener muchos dominios con la misma web, muchas configuraciones de impuestos, de precios distintintos por web, distintas plantillas para cada sitio web.. todo desde un mismo panel de control. Es tan flexible desde el mismo panel de control, que ha llegado a extremos de tal forma de que necesita todo tipo de cacheados, tablas temporales donde guardar indexada la información, así como también Varnish y Redis. Todo esto junto es una combinación explosiva y todo un reto hacerlo funcionar todo. Así que en este post vengo a hacer una review del funcionamiento de estos índices de datos.

Symfony web profiler

Symfony: tutorial 7: depurando todo con lupa, el profiler

En este post traigo una review del perfilador de Symfony Flex, Symfony 4, el profiler. Es una gran herramienta de desarrollo web que nos brinda Symfony. Podemos ver muchos datos internos de cómo funciona todo por dentro: la petición y respuesta, rendimiento, envío de formularios, validaciones, datos de las excepciones, logs… pasando por Doctrine, enrutamiento..

Magento API carrito pedido

Magento 1: creando un pedido con la API Soap

Aquí estoy de nuevo compartiendo otro CODE-KATA, ahora para hacer una tarea muy interesante conectando dos sistemas informáticos. Es decir, tenemos un Magento 1 en algún lugar, y vamos a permitir conectarnos desde otra plataforma en PHP para la creación de pedidos de forma remota. Lo primero que necesitamos tener es la información del pedido por completo. Necesitamos saber los datos del cliente, direcciones de envío y facturación, en este caso el correo electrónico del cliente registrado en Magento, y de los productos necesitamos el SKU y la cantidad que queremos pedir.

Magento informacion pedido con la API Soap

Magento 1: sacando la información de pedido con la API Soap

Otra vez, de nuevo, me repito más que el ajo xDD vengo a traer otro CODE-KATA o HOWTO. Esta vez sobre la API Soap de Magento. Se trata de un pequeño script para ver la información de un pedido. El punto de partida es que tenemos ya configurada la API Soap de Magento, con un usuario de la API, con los suficientes privilegios para hacer peticiones de información sobre los pedidos. Entonces conectamos a dicho proyecto, a su endpoint, con las credenciales de acceso, y obtenemos los datos del pedido.