Resulta habitual en algunas aplicaciones Symfony el uso de servicios inmutables
que usas traits de PHP para definir sus funcionalidades opcionales. Aunque el
contenedor de servicios de Symfony soporta la inyección vía setters, esta
tiene algunos inconvenientes importantes (por ejemplo, los setters s...
seguir leyendo
Crear tests funcionales en Symfony es bastante sencillo gracias a las
utilidades que proporciona la clase WebTestCase y gracias a los asertos de
PHPUnit. Sin embargo, para algunos casos de uso habituales (por ejemplo,
comprobar que la respuesta fue exitosa o que redirige a alguna URL) los métodos
as...
seguir leyendo
Antes de explicar esta nueva funcionalidad añadida en Symfony 4.3, observa la
siguiente entidad sencilla de Doctrine:
use Doctrine\ORM\Mapping as ORM;
/** @ORM\Entity */
class SomeEntity
{
// ...
/** @ORM\Column(length=4) */
public $pinCode;
}
Pregunta: ¿genera el...
seguir leyendo
En Symfony 4.3, el componente Validator ha añadido una nueva constraint o
validación llamada Unique. Su propósito es validar que todos los elementos de
una colección son únicos (ningo se repite más de una vez):
// src/Entity/Person.php
namespace App\Entity;
use Symfony\Component\Validator\Co...
seguir leyendo
El componente Routing se encarga de asociar peticiones HTTP con el código
PHP a ejecutar mediante una serie de routas configuradas en la aplicación. En
Symfony 4.3 hemos simplificado la configuración de algunas de las opciones de
esas rutas.
En primer lugar, hemos añadido una opción llamada utf8 par...
seguir leyendo
El componente Finder permite buscar archivos y directorios en base a
criterios como su nombre, tamaño, contenidos, fecha de modificación, etc. Es uno
de esos componentes Symfony con un propósito muy pequeño pero que son
tremendamente útiles (y populares, ya que Finder tiene más de 100 millones de
de...
seguir leyendo
Cuando se utilizan variables de entorno para configurar aplicaciones Symfony
resulta común usar URLs para definir valores de tipo DSN como el siguiente:
# .env
MONGODB_URL="mongodb://db_user:[email protected]:27017/db_name"
Sin embargo, a veces tienes que acceder a alguna parte de la U...
seguir leyendo
En Symfony 3.3, simplificamos la configuración de servicios recomendando que sus
IDs fueran la FQCN de la clase asociada al servicio. Además de hacer que el
código fuera más sencillo de entender, esto evitaba tener que pensar cadenas de
texto arbitrarias para identificar los servicios.
Aplicando la ...
seguir leyendo
En Symfony 4.2, el componente Messenger utiliza el
componente Serializer para serializar los mensajes a JSON y deserializarlos
después. La razón original para hacer esto era que al exportar los mensajes en
formato JSON, cualquier otro sistema podría consumirlos, incluso si no usaban
Symfony o PHP.
A...
seguir leyendo
Parámetros booleanos en las rutas
En tus aplicaciones Symfony puedes usar parámetros de configuración en las rutas.
En Symfony 4.3 hemos mejorado esta funcionalidad para soportar también los
parámetros de tipo booleano, por lo que podrás hacer cosas como estas:
/**
* @Route("/test", condit...
seguir leyendo