Symfony 5. Novedades de esta nueva versión

Descubre las novedades que traerá la nueva versión de Symfony

Pero antes… ¿qué diferencia hay entre Symfony 5 y Symfony 4.4?

Encriptar y firmar emails

use Symfony\Component\Mime\Crypto\SMimeSigner;
use Symfony\Component\Mime\Email;
$email = (new Email())->from('...')->to('...')->html('...');$signer = new SMimeSigner('/path/to/certificate.crt', '/path/to/certificate-private-key.key');$signedEmail = $signer->sign($email);$gmailTransport = new GmailTransport('user', 'password');
$gmailTransport->send($signedEmail);

PHPUnit y Componente Mailer

Emails de notificación

Image for post
Image for post
Symfony\Bridge\Twig\Mime\NotificationEmail;

Mejora en la validación de tipos

namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Address
{
// ...

/**
* @Assert\Type(type={"alpha", "digit"})
*/
protected $postalCode;
}

Añadida la constraint AutoMapping

Los Event Listener son aún más fáciles de declarar

namespace App\EventListener;

use Symfony\Component\HttpKernel\Event\RequestEvent;

final class MyRequestListener
{
public function __invoke(RequestEvent $event): void
{
// ...
}
}
# config/services.yaml
services:
App\EventListener\MyRequestListener:
tags:
- { name: kernel.event_listener, event: kernel.request }
# config/services.yaml
services:
App\EventListener\MyRequestListener:
tags:
- { name: kernel.event_listener }

WeekType

use Symfony\Component\Form\Extension\Core\Type\WeekType;

$builder->add('startDateTime', WeekType::class, [
'input' => 'array',

'widget' => 'choice',
]);

Mejoras en el componente HttpClient

Service Container Linter

namespace App\Service;

class SomeService
{
public function __construct(string $foo = 'foo')
{
// ...
}
}
services:
App\Service\SomeService: ~
Invalid definition for service "App\Service\SomeService": argument 1 of
"App\Service\SomeService::__construct" accepts "string", "NULL" passed.

Integración con PHP 7.4

Mejoras en el comando lint:twig

Conclusiones

¿Quieres recibir más artículos como este?

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store