ExplainAction
API reference › Debug › actions › db › ExplainAction
Renders the EXPLAIN plan for a single captured SQL query.
Maps to the db-explain route registered by DbPanel::init(); consumes tag (request snapshot) and seq (the
captured row’s own sequence number) to locate the SQL statement and execute the driver-appropriate EXPLAIN command.
Malformed input answers 400 and an unknown tag or sequence answers 404, both with an empty body, so the inline
AJAX workflow never renders an exception page inside the grid.
SQLite uses EXPLAIN QUERY PLAN; MySQL and PostgreSQL use plain EXPLAIN. Statements that produce no useful plan
and database rejections are handled as successful diagnostic responses so the captured query and the escaped reason
replace the result instead of a generic transport failure.
Properties
Section titled “Properties”| Property | Type | Description | Defined by |
|---|---|---|---|
$behaviors read-only | array<yii\<static>> | List of behaviors attached to this component. | yii\ |
$controller | yii\ | The controller that owns this action, or null when the action runs standalone. via Module::$actionMap Default: null. | yii\ |
$debugModule read-only | yii\ | Owning debug module. | yii\ |
$id | string| | ID of the action; null between construction and dispatcher post-assignment for standalone actions resolved through Module::$actionMap or Module::$actionNamespace. Default: null. | yii\ |
$manifest read-only | array<string, | Manifest entries indexed by tag. | yii\ |
$module | yii\| | The owning module, or null if neither a module nor a controller is attached. Available since 22.0. | yii\ |
$summary | PHPForge\ | Summary metadata for the active debug entry, populated by loadData(). Default: null. | yii\ |
$uniqueId read-only | string | The unique ID of this action among the whole application. | yii\ |
$viewPath read-only | string | Absolute path to the debugger views. | yii\ |
Methods
Section titled “Methods”| Method | Description | Defined by |
|---|---|---|
__construct() | Constructor. | yii\ |
__call() | Calls the named method which is not a class method. | yii\ |
__clone() | This method is called after the object is created by cloning an existing one. | yii\ |
__get() | Returns the value of a component property. | yii\ |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\ |
__set() | Sets the value of a component property. | yii\ |
__unset() | Sets a component property to be null. | yii\ |
attachBehavior() | Attaches a behavior to this component. | yii\ |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\ |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\ |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\ |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\ |
className() static | Returns the fully qualified name of this class. | yii\ |
detachBehavior() | Detaches a behavior from the component. | yii\ |
detachBehaviors() | Detaches all behaviors from the component. | yii\ |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\ |
getBehavior() | Returns the named behavior object. | yii\ |
getBehaviors() | Returns all behaviors attached to this component. | yii\ |
getDebugModule() | Returns the owning debug module. | yii\ |
getManifest() | Returns the debug entry manifest, reloading it from the log target on demand. | yii\ |
getModule() | Returns the module that owns this action when invoked standalone. | yii\ |
getUniqueId() | Returns the unique ID of this action among the whole application. | yii\ |
getViewPath() | Returns the view directory shared by every debugger page. | yii\ |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\ |
hasMethod() | Returns a value indicating whether a method is defined. | yii\ |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\ |
init() | Initializes the object. | yii\ |
loadData() | Loads the debug entry for the given tag into every registered panel. | yii\ |
off() | Detaches an existing event handler from this component. | yii\ |
on() | Attaches an event handler to an event. | yii\ |
prepareShell() | Prepares the shared shell for a request panel or nested panel action. | yii\ |
render() | Renders a debugger view wrapped in the shared page layout. | yii\ |
renderPartial() | Renders a debugger view without the page layout. | yii\ |
run() | Runs the action. | ExplainAction |
runWithParams() | Runs this action with the specified parameters. | yii\ |
setModule() | Sets the module that owns this action when invoked standalone. | yii\ |
trigger() | Triggers an event. | yii\ |
afterRun() protected | This method is called right after run() is executed. | yii\ |
beforeRun() protected | Forces the HTML response format and installs the bare shell before the action body runs. | yii\ |
createBareShellContext() protected | Builds the bare shell installed by beforeRun() through Module::getShellContextFactory(). | yii\ |
createPanelRenderContext() protected | Builds the portable state available to shared panel renderers for the active snapshot. | yii\ |
createShellContext() protected | Builds the shared shell for an index or view page through Module::getShellContextFactory(). | yii\ |
getLogTarget() protected | Returns the initialized debug log target. | yii\ |
getMailCollector() protected | Returns the registered mail collector. | yii\ |
getPanel() protected | Returns a registered panel by ID. | yii\ |
prepareIndexShell() protected | Prepares the shared shell for the request history page. | yii\ |
renderPanelError() protected | Renders a JSON-safe panel exception snapshot through Yii’s exception view. | yii\ |
resolveStandaloneParams() protected | Resolves the parameters of run() using the same HTTP-aware binder as Controller::bindActionParams(). | yii\ |
resolveTheme() protected | Resolves the effective light or dark theme. | yii\ |
Method details
Section titled “Method details”run()
Section titled “run() ”public function run(mixed $seq, mixed $tag, yii\debug\panels\DbPanel $panel): stringRuns the action.
Parameters
| Parameter | Type | Description |
|---|---|---|
$seq | mixed | Sequence number of the captured row to explain; anything but a digit string answers 400. |
$tag | mixed | Request tag whose debug snapshot holds the query; anything but a non-empty string answers 400. |
$panel | yii\ | Panel instance resolved from the debug module’s service locator by the standalone-action binder. |
Returns
string: Rendered view with the EXPLAIN results, or '' for the 400 and 404 responses.