Mejoras en las recetas: ¡Parte 2!
Keep on Learning!
If you liked what you've learned so far, dive in! Subscribe to get access to this tutorial plus video, code and script downloads.
With a Subscription, click any sentence in the script to jump to that part of the video!
Login SubscribeCorre:
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 dev
y 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.
// ... 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.
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.
// ... 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.
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.
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.
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.
// ... 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.
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.
Hello again.
I moved onto updating the symfony/translation recipe and why on earth is it trying to delete my config/services.yaml?
`
Which outdated recipe would you like to update? (default: 0)
[0] stof/doctrine-extensions-bundle
[1] symfony/monolog-bundle
[2] symfony/swiftmailer-bundle
[3] symfony/translation
[4] symfony/validator
[5] symfony/web-profiler-bundle
[6] symfony/webpack-encore-bundle
> 3
Updating recipe for symfony/translation...
Yes! Recipe updated!
Run git status or git diff --cached to see the changes.
When you're ready, commit these changes like normal.
Kevins-MBP-2:www.site.com kevin$ git status
On branch develop
Your branch is ahead of 'origin/develop' by 15 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
`
Seems aggressive and I didn't see that it did that for you in the video.
Thoughts?
-Kevin