Update zestly/dev-login-bundle recipe to use when@dev (#2030)

Follow-up to the review feedback on #2026: env-scoped config/*/dev/
directories are the outdated approach. Both files move to flat paths
guarded by a when@dev: block.

The packages file is guarded too rather than left bare — the bundle is
registered for dev only, so an unguarded zestly_dev_login: root key in
config/packages/ has no extension to load it in prod and would break
cache warmup.


Claude-Session: https://claude.ai/code/session_01FtiTUbCskmCiy9k78vCL19

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Andrew Brereton
2026-08-23 19:18:10 +04:00
committed by GitHub
co-authored by Claude Opus 5
parent e4b83b4391
commit 0b0840d005
5 changed files with 25 additions and 24 deletions
@@ -1,16 +0,0 @@
zestly_dev_login:
# The identities offered by GET /_dev/login and `bin/console dev:login`.
#
# There is no sensible default for this — it depends entirely on your fixtures — which is
# why it is the one setting this recipe writes. Everything else the bundle exposes already
# has a working default and is documented in the README.
#
# This is a convenience menu, not a whitelist: any identifier your application's user
# provider accepts will work, and listing one here grants nothing on its own.
#
# To build the list from your fixtures, a repository, or per-subdomain in a multi-tenant
# app, implement Zestly\DevLoginBundle\Identity\IdentityProviderInterface and alias it —
# it receives the current Request.
identities: []
# - { identifier: 'admin@example.com', label: 'Admin', roles: ['ROLE_ADMIN'] }
# - { identifier: 'user@example.com', label: 'Regular user' }
@@ -0,0 +1,17 @@
when@dev:
zestly_dev_login:
# The identities offered by GET /_dev/login and `bin/console dev:login`.
#
# There is no sensible default for this — it depends entirely on your fixtures — which
# is why it is the one setting this recipe writes. Everything else the bundle exposes
# already has a working default and is documented in the README.
#
# This is a convenience menu, not a whitelist: any identifier your application's user
# provider accepts will work, and listing one here grants nothing on its own.
#
# To build the list from your fixtures, a repository, or per-subdomain in a multi-tenant
# app, implement Zestly\DevLoginBundle\Identity\IdentityProviderInterface and alias it —
# it receives the current Request.
identities: []
# - { identifier: 'admin@example.com', label: 'Admin', roles: ['ROLE_ADMIN'] }
# - { identifier: 'user@example.com', label: 'Regular user' }
@@ -1,5 +0,0 @@
# Dev login endpoints. Loaded only because this file lives in config/routes/dev/ — that is
# one of the bundle's safety gates, so a production router never learns these paths exist.
# If you move this file out of a dev-scoped directory, you remove that gate.
zestly_dev_login:
resource: '@ZestlyDevLoginBundle/config/routes.php'
@@ -0,0 +1,5 @@
# Dev login endpoints. The `when@dev:` guard is one of the bundle's safety gates — a production
# router never learns these paths exist. Drop the guard and you drop that gate.
when@dev:
zestly_dev_login:
resource: '@ZestlyDevLoginBundle/config/routes.php'
+3 -3
View File
@@ -15,11 +15,11 @@
"",
" <fg=yellow>php bin/console dev:login</>",
"",
" * Declare who shows up in that list in <comment>config/packages/dev/zestly_dev_login.yaml</>.",
" * Declare who shows up in that list in <comment>config/packages/zestly_dev_login.yaml</>.",
"",
" * This grants password-free login to any account your user provider accepts.",
" It registers no services outside the dev environment, and its routes live in",
" <comment>config/routes/dev/</> so they do not exist in a production router.",
" It registers no services outside the dev environment, and its routes are imported",
" under <comment>when@dev:</> so they do not exist in a production router.",
"",
" * Docs: <comment>https://github.com/ZestlyDigital/dev-login-bundle</>"
]