Releases: phalcon/debugbar
Releases · phalcon/debugbar
Release list
v0.4.0
Changed
- Decomposed the
Debug\DumpandDebug\Renderer\HtmlRenderergod-methods:Dump::output()is now aformatValue()dispatcher over per-type formatters, andHtmlRendereris assembly-only, delegating value formatting toRenderer\ValueDumperand templates toTemplate\TemplateStore. #4 ReportBuilder::build()now takes(Throwable, ReportOptions, Superglobals)and no longer reads superglobals directly;BacktraceItem's fragment is now aCodeFragment. #4
Added
Report\Superglobals(itsfromGlobals()is the single$_REQUEST/$_SERVERboundary),Report\CodeFragment, andReport\ReportOptionsvalue objects.Template\TemplateStorewithContracts\TemplateCatalog(HtmlTemplateCatalog,DumpTemplateCatalog),Renderer\ValueDumper, andDebug::setSuperglobals(). #4
Fixed
Dump's "[already listed]" method guard no longer leaks across separate top-level dumps; it is now a per-dump set threaded through the recursion instead of instance state. #4
Removed
Debug\Traits\TemplateAwareTrait(replaced byTemplate\TemplateStorecomposition) and the unusedDebug::$hideDocumentRootproperty. #4
v0.3.0
Added
- A
loggercollector andPhalcon\DebugBar\Logger\Adapter. Attach the adapter to the application logger and every item logged throughPhalcon\Loggeris captured in the bar's "Logs" tab, separate from the manualmessagescollector. Each entry keeps the log level, message, and PSR-3 context; the context renders as a collapsible, pretty-printed JSON detail. Forwarding runs through the newDebugBar::addLog()and no-ops when the collector is disabled.
v0.2.0
Changed
Provider::boot()no longer throwsCannotUseInProductionin a blocked or undefined environment; it returns without registering anything, so the bar is safe to boot unconditionally and never takes down the host application.
Added
env.strictconfiguration key (defaultfalse). Whentrue,Provider::boot()throwsCannotUseInProductionin a blocked or undefined environment instead of returning silently, restoring the previous fail-fast behavior for those who want it.
Fixed
Removed
v0.1.0
Changed
Added
Security\Redactorwith two tiers - masking the values of sensitive keys and dropping configured "never shown" keys entirely - applied to the request, config, and session collectors, plusSecurity\AccessGate(IP allowlist and optional callback) restricting who receives the bar.- A static
Debugfacade for manual instrumentation -Debug::info(),Debug::debug(),Debug::notice(),Debug::warning(),Debug::error(),Debug::message(),Debug::startMeasure()/Debug::stopMeasure(), andDebug::addException()- that no-ops when no bar is registered. - Assets are minified with
matthiasmullie/minifyand injected inline, so the bar carries no external asset dependency. - Eleven collectors -
version,messages,time,exceptions,request,route,database,view,cache,config, andsession. Streamed collectors (database, view, route, cache) read their data off the event source and never resolve services; snapshot collectors read injected objects (request,config) or PHP state (session). Durations are measured withhrtime(). - Migrated the
Phalcon\Debugexception/error page component (Debug,Dump,ReportBuilder,HtmlRenderer, theReportvalue objects,Contracts, and the exception classes) out of the framework'sPhalcon\Support\Debug, with its full test suite carried over green under PHPStan level max, plus thedebug.css/debug.jspage assets. - Per-collector enable/disable, asset, header, environment, access, and redaction (
mask/hidden) configuration on theProvider. The bar ships under PHPStan level max with 100% line, method, and class coverage. - The
databasecollector renders each query's bound parameters next to the statement; thesessioncollector omits the session id and Phalcon's internal keys (such as the CSRF token). - The
exceptionscollector auto-captures throwables viadispatch:beforeException(in addition to theDebugfacade) and shows each one's stack trace in a collapsible panel entry. - The bar's front-end (
debugbar.js/debugbar.css): a tabbed bottom bar with a panel per collector, badges, and a collapse toggle that shrinks it to a corner handle so it never covers the host page's own controls. - The web debug bar core: a
Providerthat boots the bar against an MVCApplicationpurely through its EventsManager - no DI service and no container-specific wiring - and refuses to boot in blocked/production environments. It attaches aResponseListeneronapplication:beforeSendResponsethat aggregates the collectors and injects the bar into HTML responses, backed by theDebugBaraggregator and theRenderer/Injector/BarOptionsoutput pipeline.