Symfony

Symfony logoSymfony es el framework full-stack de desarrollo PHP más activo en la comunidad. Llamado full-stack porque abarca tanto el frontend como el backend. Es un framework, que simple y llanamente, ha ido recopilando las mejores técnicas de desarrollo de software de muchos frameworks y lenguajes. Y ha englobado todas éstas técnicas en un sólo framework.

Esto hace que la curva de aprendizaje inicial sea muy pronunciada. Es un framework complicado para que un principiante empieze a desarrollar aplicaciones web. Pero una vez alcanzada la cumbre inicial, proporciona una productividad impresionante al desarrollador. Con muy pocas líneas de código fuente se crean gran cantidad de acciones. Las modificaciones son muy rápidas, y los resultados son de la máxima calidad y robustez.

La seguridad, una de las máximas prioridades.
Enrutamiento, excelente mapeado de los datos de las peticiones.
Diseño modelo-vista-controlador (MVC).
Generación dinámica de formularios.
Creación de objetos/modelos de datos automatizado.
Guardado, listado, editado y borrado de objetos de datos simplificado.
Independización de la base de datos con ORM.
Generación de vistas usando Twig.
Internacionalización.
Tests te integración unitarios y funcionales, puenteando hacia PHPUnit.
Simulador de navegador.
Crawler del DOM.
Herramienta visual de desarrollo y depuración.
Generador de CRUDs.
Interfaz de consola, para línea de comandos.
Cacheado.
Y un largo etcétera..

100% integrado con el gran Composer, el gestor de dependencias que ha revolucionado el trabajo en PHP. Gracias a esto, su instalación, mantenimiento, actualización y adición de nuevas funcionalidades es realmente sencillo. Todo esto no es más que la punta del iceberg. Symfony es la apuesta segura. Destapa el porqué, poco a poco, tantos proyectos web se están reconstruyendo completa o parcialmente mediante Symfony:

phpBB, Drupal, Prestashop, Joomla, Magento, API Platform, eZ Platform, Thelia, Sylius, Dailymotion, OroCRM, Yahoo! Answers..

Tutoriales de iniciación a Symfony y Symfony Flex.

Symfony: registro de usuarios, reset password, login..

2021-10-02 - Categorías: CSS / General / HTML / PHP / Symfony

¡Hola de nuevo! Esto es un codekata, esta vez para páginas web construidas con Symfony, con registro, autenticación y autorización de usuarios. Se trata de un clásico para generar toda la estructura necesaria para crear desde cero un proyecto funcional en unos minutos.

Hasta la versión 4 de Symfony teníamos vendors, como FOSUserBundle, con lo que estas cosas de registros de usuarios venían hechas. Ahora a partir de la versión 5 de Symfony también, tenemos de casa componentes para integrar estas cosas, generando códigos y configuraciones en pocos minutos.

Vamos al grano y lo vemos?¿ 😎👍

Continuar leyendo..

API Platform, Symfony: añadiendo funcionalidades fácilmente

2021-09-12 - Categorías: General / PHP / Symfony

Jugueteando con esta joya del software, la API Platform, podemos construir una API Restful en muy poco tiempo. Lo siguiente que podemos necesitar es disparar acciones cuando ocurren cosas con los elementos de la API. Pero no vamos a editar las acciones de GET, POST, PUT, PATCH o DELETE, porque esto viene hecho, y es estándar su comportamiento. Si no que vamos a engancharnos a los eventos de dichas acciones, a post-procesar la información o a implementar nuevos endpoints en este post.

Es decir, una API Restful puede ser una cosa bastante simple, en la que sólo almacenamos información que podemos editar remotamente. Se pueden añadir puntos de entrada con lógica nueva y controlable desde el exterior. Pero es más interesante, que después de recibir peticiones, hagamos tareas aparte de las básicas CRUD: crear, listar, actualizar y borrar.

Por lo menos tenemos tres formas de lanzar estas acciones nuevas:

  • Añadiendo nuevos puntos de entrada para procesar, no recomendable.
  • Programando tareas que se ejecuten cada cierto tiempo.
  • Enganchándonos a los eventos de la API en las peticiones.
Continuar leyendo..

Symfony: priorizando la carga de rutas

2021-08-07 - Categorías: PHP / Symfony
Herramientas Symfony

Pequeño howto sobre el problema del orden en la carga de rutas en Symfony. Me costó un poco encontrar la solución, así que aquí me hago eco del problema con la solución.

El problema consiste en que varias rutas pueden entrar en conflicto por el orden de la carga de forma automática. Esto ocurre cuando hay rutas dinámicas, en las que en la ruta se usan valores dinámicos, para después hacer algo en los controladores.

Continuar leyendo..

Creando una API Restful con la API Platform desde cero

2021-07-04 - Categorías: HTML / JavaScript / PHP / Symfony
API Platform filtering

Aquí llega otro sencillo codekata o howto para crear una API Restful en PHP, from scratch, en pocos minutos, sobre Mysql o Mariadb, y usando esta joya del software llamada API Platform.

A esta API se le puede conectar cualquier otro software como una aplicación en React, Angular, WordPress, Magento.. aplicaciones hechas en varios lenguajes como Java, Python, PHP, JavaScript, etcétera. Estas APIs son una forma de conectar sistemas de forma totalmente estándar.

Este post es continuación de este sobre crear APIs a partir de proyectos funcionales, o complemento de este otro sobre cómo filtrar elementos en la API Platform. También se complementa con este post posterior sobre PHP y una clase estándar para consulta de APIs.

Continuar leyendo..

El despliegue de aplicaciones web Symfony

2021-03-06 - Categorías: Symfony
Symfony, el despliegue en producción

He recibido una consulta a la web sobre este tema, sobre el cómo pasar aplicaciones Symfony a producción. Así que por aquí estoy de nuevo dejando algunos tips, o cosas a tener en cuenta. Esto es un resumen, un codekata o howto, para desplegar aplicaciones web Symfony.

El despliegue de estas aplicaciones puede volverse realmente elaborado, dependiendo de hasta donde queramos automatizar. Es importante porque podemos querer actualizar producción varias veces al día.

En un post anterior estuve escribiendo sobre cómo programar despliegues automáticos con Git. Usar Git es la opción que yo prefiero. Voy a tratar de centrarme en lo especial que tiene Symfony. La documentación oficial está muy bien, con muchos detalles, y muy extendida. Luega dejo enlace para el que quiera seguir avanzando.

Continuar leyendo..



Scripts y técnicas de despliegue continuo para una web con Git

2020-11-16 - Categorías: General / Magento / PHP / Symfony / WordPress

Automatizar la publicación de nuevas versiones es una técnica de desarrollo de aplicaciones que se denomina Despliegue Continuo o Continuous Deployment en inglés (CD). Se suele usar junto con el Continuous Integration (CI), en el que se elabora una serie de pruebas automáticas sobre el software.

Tener esto automatizado nos ahorra mucho tiempo, nos dará velocidad en todos estos pasos intermedios ya que no tendremos que repetirlos continuamente, y podremos centrarnos en desarrollar para cada iteración.

Durante las pruebas puede notificarnos en caso de errores, realizar todo tipo de chequeos, o elaborar documentación sobre el proyecto para el resto del equipo. Pero una vez que tenemos el primer paso montado del CI, es interesante seguir con el segundo paso del CD. A continuación comparto unos scripts e instrucciones para una web en WordPress, Symfony o Magento 2, con GitHub o BitBucket. Así es como funciona también aquí en JnjSite.com..

Continuar leyendo..

Cómo empezar un cortafuegos en PHP

2020-06-08 - Categorías: Drupal / Magento / PHP / Prestashop / Symfony / WordPress
WAF Web Application Firewall

Este post es un sencillo howto para ejecutar un código, antes de cualquier ejecución en PHP en una aplicación web. Sirve para montar lo que se llama un WAF en la capa de aplicación, cuyas siglas significan Web Application Firewall.

Así después, le podemos añadir toda la lógica que necesitemos. Con ésta técnica, en cada petición que se reciba en PHP, se ejecutará lo que pongas en el WAF antes de la ejecución de nuestra aplicación web.. 🧐

Continuar leyendo..

Generando un panel de control en pocos minutos con EasyAdmin en Symfony

2020-03-27 - Categorías: General / PHP / Symfony / WordPress
EasyAdmin generando a partir de la BD

¡Hola! Jugando y jugando, probando software, aquí que vengo de nuevo y os traigo un codekata en Symfony. Es para hacer ingeniería inversa de cualquier proyecto en el que tengas una base de datos. También traigo una joya del software que se llama EasyAdmin, un bundle/componente para Symfony. Este codekata se puede aplicar a cualquier base de datos compatible con Symfony, más en concreto, con cualquiera compatible con Doctrine, que es el componente ORM que te conectará con la BD.

Quizá tienes que hacer un panel de control que sólo acceda a la información X del proyecto, a ciertas tablas. También sirve para bases de datos completas. Podría ser un proyecto legacy, de un Symfony antiguo, un Magento, un ERP como Odoo con el que trabajar con Symfony, o un WordPress, un Prestashop, Drupal, etc.. Sea cual sea el proyecto la idea es la misma.

Continuar leyendo..

Symfony: cómo evitar ser SPAM controlando los bounces y complaints de tus emails

2020-02-10 - Categorías: GNU/Linux / PHP / Symfony
Symfony, evitando ser marcado como SPAMMER controlando los bounces y complaints de los emails..

Hoy traigo un codekata bien cargado, sobre Symfony y los emails. Este post, junto con el anterior sobre cómo enviar muchos emails.. te dará el poder de enviar infinitos emails gratis. Pero un gran poder conlleva una gran responsabilidad 😀 o serás marcado como el supervillano de los emails, el SPAMMER 😱

Fuera de bromas, este es un post de pruebas, un codekata usando la última versión 5 de Symfony, con Symfony Flex, y Swiftmailer para el envío de los emails. Con este codekata podemos controlar que los emails que enviamos, lleguen a destino correctamente, para que no nos marquen como SPAMMERS. Evitamos así que nuestro servidor entre en listas negras de bloqueo. He elegido Symfony, el framework PHP de referencia para grandes proyectos web. También Swiftmailer ya que quería invertir poco tiempo, y viene muy bien integrado con Symfony 😜 La misma teoría y lógica también serviría para cualquier otro lenguaje como Java o Python.

Continuar leyendo..

AWS & GNU/Linux: optimizando aplicaciones web

2020-01-28 - Categorías: Amazon Web Services / Drupal / GNU/Linux / Magento / PHP / Prestashop / Symfony / WordPress
GNU/Linux: optimizando servidores
GNU/Linux: optimizando servidores

Aquí estoy de nuevo dejando mi granito de arena en todo esto de la informática. Hoy traigo un howto para la optimización de servidores web. Simplemente, son unas propuestas de configuraciones totalmente estándar y disponibles en las documentaciones oficiales. Pero que mejoran mucho el rendimiento de aplicaciones web, hechas en lenguajes como HTML, CSS, Javascript, PHP, Java, Python, SQL, DQL..

Este post es para optimizar aplicaciones web del tipo WordPress, Prestashop, Magento, Drupal, Symfony.. etcétera. Es una visión general de cómo funcionan las cosas a bajo nivel. Digo a bajo nivel, porque están muy de moda las arquitecturas server-less, o los servidores auto-administrados, aunque también necesiten su optimización. Pero aquí nos remangaremos la camisa, y nos embarraremos hasta el cuello mientras que vamos investigando, aprendiendo y aplicando, para cada proyecto en concreto. Este es un post para los que nos gusta trabajar los servidores, para los que nos gusta ponernos manos a la obra, para experimentar nosotros mismos con los proyectos, rascando cada milisegundo para conseguir que todo vaya lo más rápido posible..

Continuar leyendo..

© 2021 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.