Buy Access to Course
07.

Mejoras en las recetas: ¡Parte 2!

|

Share this awesome video!

|

Keep on Learning!

With a Subscription, click any sentence in the script to jump to that part of the video!

Login Subscribe

Corre:

composer recipes:update

Lo siguiente es doctrine-extensions-bundle. Este... cuando miramos... ¡sólo modificamos un comentario! Fácil!. Así que confirma eso... y luego pasa a debug-bundle.

symfony/debug-bundle Receta

composer recipes:update

Limpia la pantalla y ejecuta eso. Esto ha hecho dos cambios. Ejecutar:

git status

El primer cambio fue que eliminó un archivo específico del entorno... y lo trasladó al archivo principal. El segundo cambio, que no es muy habitual en las actualizaciones de recetas, es que en config/bundles.php, antes cargaba DebugBundle en el entorno devy en el entorno test. Ahora recomendamos cargarlo sólo en el entorno dev. Puedes cargarlo en el entorno test, pero tiende a ralentizar las cosas, así que se ha eliminado por defecto.

26 lines | config/bundles.php
// ... lines 1 - 2
return [
// ... lines 4 - 9
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
// ... lines 11 - 24
];

¡Es fácil! Confirma esos cambios... ¡y sigue adelante!

receta symfony/monolog-bundle

composer recipes:update

El siguiente es symfony/monolog-bundle. Este tiene un conflicto, pero es bastante sencillo. Anteriormente, teníamos archivos específicos del entorno en los directorios dev/, prod/, y test/. Todos ellos se han trasladado al archivo centralconfig/packages/monolog.yaml. La única razón por la que había un conflicto en mi proyecto es porque había creado previamente este archivo en un tutorial para añadir un nuevo canal markdown. Moveré mi canal markdown aquí abajo... y mantendré lo nuevo.

63 lines | config/packages/monolog.yaml
monolog:
channels:
- markdown
// ... lines 4 - 63

Debajo de esto, puedes ver la configuración dev para el registro, la configuración test y la configuración prod. De nuevo, si tenías una configuración personalizada en tus archivos antiguos, asegúrate de traerla al nuevo archivo para que no se pierda.

63 lines | config/packages/monolog.yaml
// ... lines 1 - 5
when@dev:
monolog:
handlers:
main:
type: stream
// ... lines 11 - 26
when@test:
monolog:
handlers:
main:
type: fingers_crossed
// ... lines 32 - 40
when@prod:
monolog:
handlers:
main:
type: fingers_crossed
// ... lines 46 - 63

Añade estos cambios... y... confirma.

receta symfony/routing

Luego vuelve a la derecha:

composer recipes:update

¡Nos estamos acercando! Actualiza symfony/routing. Veamos. Esto ha eliminado otro archivo de configuración específico del entorno. ¡Sí! ¡Menos archivos! También destaca un nuevodefault_uri config que se establece si alguna vez necesitas generar URLs absolutas desde dentro de un comando.

Antes lo hacías configurando los parámetros de router.request_context. Ahora es más fácil, y esto lo anuncia.

framework:
router:
utf8: true
# Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
# See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
#default_uri: http://localhost
when@prod:
framework:
router:
strict_requirements: null

Confirma esto... ¡y sigamos!

symfony/security-bundle Receta

composer recipes:update

Hemos llegado a symfony/security-bundle. Éste tiene un conflicto... y está dentro de config/packages/security.yaml. Están ocurriendo algunas cosas importantes. La actualización de la receta ha añadido enable_authenticator_manager: true. Esto habilita el nuevo sistema de seguridad. Hablaremos de ello más adelante. Por ahora, pon esto en false para que sigamos utilizando el antiguo sistema de seguridad.

64 lines | config/packages/security.yaml
security:
// ... lines 2 - 9
enable_authenticator_manager: false
// ... lines 11 - 64

También ha añadido algo llamado password_hashers, que sustituye a encoders. También vamos a hablar de eso más adelante. Por ahora, quiero que mantengas ambas cosas.

64 lines | config/packages/security.yaml
security:
encoders:
App\Entity\User:
algorithm: auto
// ... lines 5 - 11
password_hashers:
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
// ... lines 14 - 64

También hay un conflicto en el cortafuegos. El cambio importante es que la nueva receta tiene lazy: true. Eso sustituye a anonymous: lazy, así que podemos seguir adelante y mantener ese cambio... pero utilizar el resto de nuestro cortafuegos.

64 lines | config/packages/security.yaml
security:
// ... lines 2 - 20
firewalls:
// ... lines 22 - 24
main:
lazy: true
provider: app_user_provider
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_logout
// ... lines 33 - 64

Ah, y en la parte inferior, tenemos una nueva y brillante sección when@test, que establece un hasher de contraseña personalizado. Puedes leer el comentario. Esto acelera tus pruebas haciendo mucho más rápido el hash de las contraseñas en el entorno de pruebas, donde no nos importa la seguridad de nuestro algoritmo de hash.

64 lines | config/packages/security.yaml
// ... lines 1 - 51
when@test:
security:
password_hashers:
# By default, password hashers are resource intensive and take time. This is
# important to generate secure password hashes. In tests however, secure hashes
# are not important, waste resources and increase test times. The following
# reduces the work factor to the lowest possible values.
Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
algorithm: auto
cost: 4 # Lowest possible value for bcrypt
time_cost: 3 # Lowest possible value for argon
memory_cost: 10 # Lowest possible value for argon

Añadamos los archivos... y sigamos.

receta symfony/traducción

Lo siguiente es symfony/translation. Esto no es importante... sólo muestra algunas opciones de configuración nuevas. Todas están comentadas, así que... es bueno verlas, pero no son importantes.

14 lines | config/packages/translation.yaml
framework:
// ... line 2
translator:
// ... lines 4 - 6
# providers:
# crowdin:
# dsn: '%env(CROWDIN_DSN)%'
# loco:
# dsn: '%env(LOCO_DSN)%'
# lokalise:
# dsn: '%env(LOKALISE_DSN)%'

Confirma y... ¡sigue adelante!

receta symfony/validator

Lo siguiente es symfony/validator. ¡Es muy sencillo! Esto movió la configuración deconfig/test/validator.yaml a la principal validator.yaml.

¡Confírmalo!

receta symfony/web-profiler-bundle

Vamos a actualizar una receta más ahora mismo: web-profiler-bundle. ¿Adivinas lo que ha hecho? Ha añadido más configuración específica del entorno. Así que la configuración dedev/web_profiler.yaml y test/web_profiler.yaml se trasladó a la principalweb_profiler.yaml. Lo mismo ocurrió con las rutas. La configuración dedev se trasladó a un nuevo config/routes/web_profiler.yaml. Vamos a confirmarlo y... ¡uf! ¡Casi lo hemos conseguido! ¡Sólo quedan dos recetas!

Vamos a actualizarlas. La receta WebpackEncoreBundle también nos dará la oportunidad de actualizar nuestro JavaScript a la nueva versión Stimulus 3.