[NFR]: Show the debug page in ADR apps
Mantenedores costumam responder em até 1 dia
@niden já está trabalhando nisso.
Desde 3/11/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
Summary
The package gives two things: the debug bar and the debug page (Phalcon\Debug). The debug page does not show in an ADR app, because ADR catches all exceptions before the debug page handler can run. Show the debug page in ADR apps, in development only.
Current state
Debug::listen()usesset_exception_handler()(src/Debug.php:178).Phalcon\ADR\Application::handle()catches eachThrowableand sends it toErrorResponder.AbstractHttpFront::run()also catches eachThrowable. The handler does not run for these exceptions.Debug::halt()throwsRequestHalted(src/Debug.php:147), andonUncaughtLowSeverity()throwsRuntimeWarning(src/Debug.php:253). In an Action, these also go toErrorResponder, so the client gets a generic error response.ErrorResponderhas a debug mode that gives the exception to the client. It does not give the debug page (backtrace, code fragments and superglobals).
Proposed direction
- Use the logger adapter from #47 to get the exception.
- Add a listener on
application:afterHandle. When the logger received an exception, the response status is 500 or higher and the response is not JSON, the listener replaces the response content withDebug::renderHtml($exception). - Keep the status that
ErrorResponderset. A 404 fromRouteNotFoundkeeps the application error page. - The application opts in through a config key of the ADR service provider from #14.
- The listener runs only when the bar boots, and only for a client that
AccessGateallows. The debug page shows sensitive data.
Notes
This design is not tested yet. Test it first in this issue.
Acceptance
- In an ADR app in development, an exception in an Action shows the debug page.
Debug::halt()in an Action shows the debug page.- The debug page is absent in a blocked environment and for a denied client.
- The debug page does not replace a JSON response or a 404 response.
- The bar is not injected into the debug page.
- The public API of
Phalcon\Debugdoes not change. - Tests pass with full coverage.
phpcsandphpstanpass.
Depends on
- #14
- #47
Part of
#13
- Linguagem predominante
- PHP
- Estrelas
- 6
- Forks
- 3
- Merge médio
- 2h 48min
- PRs com merge (30d)
- 55
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de phalcon/debugbar
-
[BUG]: Member order and function imports do not follow the coding ruleTalvez já em andamento @niden assumiu há 2 dias. Abertabug
phalcon/debugbar#105 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
[BUG]: Debug page: error handler does not return false or chain handlersTalvez já em andamento @niden assumiu há 2 dias. Abertabug
phalcon/debugbar#90 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
Todas as issues de phalcon/debugbar
Issues semelhantes
-
sync-en
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
sync-en
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
bug security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Перевод устарел
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
Plugin directory: block icon SVG loses elements other than <path> in the Blocks sectionTalvez já em andamento @obenland assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
WordPress/wordpress.org#1209 ·
Mantenedores costumam responder em até 1 dia