Skip to content

Dashboard & Status

Pollora includes a built-in admin dashboard and an Artisan CLI command that give you a complete overview of your framework installation, discovered entities, and system health.

The dashboard is accessible in the WordPress admin under Tools > Pollora. It displays a branded overview of your project with the following cards:

CardDetails
EnvironmentPHP, Laravel, and WordPress versions
WordPress ConfigWP_DEBUG status, multisite, permalink structure
Post TypesDiscovered post types with labels, slugs, and class names
TaxonomiesDiscovered taxonomies with labels, slugs, and class names
HooksTotal count of discovered actions and filters
REST API RoutesClasses discovered via #[WpRestRoute]
WP-CLI CommandsClasses discovered via #[WpCli]
Scheduled TasksMethods discovered via #[Schedule]
Auto-discovered ProvidersService providers found by the discovery engine
ModulesLaravel modules status (enabled/disabled) via nwidart/laravel-modules
Discovery CacheCache driver and enabled status
Discovery PerformanceCache hits/misses, classes processed, instance pool size
Active ThemeTheme name, version, and template directory

When a newer stable version of Pollora is available on Packagist, a notification badge appears on the Tools > Pollora menu item, similar to WordPress’s Site Health counter. Dev versions (dev-develop, dev-main, etc.) are excluded from this check to avoid false positives.

The dashboard page requires the manage_options capability (administrators only).

The pollora:status Artisan command provides the same information in the terminal:

Terminal window
php artisan pollora:status

Example output:

Pollora v13.4.0 (latest: v13.4.0) ✓
PHP 8.3.12 | Laravel 13.5 | WordPress 6.9
WP_DEBUG: off | Multisite: no | Permalinks: /%postname%/
Post Types: 2 registered (via discovery)
· Projects [project] — App\Cms\PostTypes\Project
· Services [service] — App\Cms\PostTypes\Service
Taxonomies: 1 registered
· Project Categories [project-category] — App\Cms\Taxonomies\ProjectCategory
Hooks: 4 registered (2 actions, 2 filters)
REST API routes: 1 registered
· App\Cms\Rest\ProjectController
WP-CLI commands: 1 registered
· App\Cms\Cli\SeedCommand
Scheduled tasks: 2 registered
· App\Cms\Schedule\CacheCleanup::cleanExpiredTransients()
· App\Cms\Schedule\CacheCleanup::cleanRevisions()
Auto-discovered providers: 1
· App\Providers\AppServiceProvider
Modules: 0 total (0 enabled, 0 disabled)
Discovery cache: enabled (LaravelDiscoverCacheDriver)
Discovery stats: 3 cache hits, 0 misses, 24 classes
Theme: Starter Theme v1.0.0 (pollora-starter)

Use the --json flag for machine-readable output, useful for AI agents, CI pipelines, or monitoring tools:

Terminal window
php artisan pollora:status --json

This outputs the complete system information as a JSON object:

{
"framework": {
"current": "13.4.0",
"latest": "13.4.0",
"update_available": false
},
"environment": {
"php": "8.3.12",
"laravel": "13.5.0",
"wordpress": "6.9"
},
"wordpress": {
"debug": false,
"multisite": false,
"permalink_structure": "/%postname%/"
},
"discovery": {
"post_types": { "count": 2, "items": ["..."] },
"taxonomies": { "count": 1, "items": ["..."] },
"hooks": { "count": 4, "actions": 2, "filters": 2 },
"rest_routes": { "count": 1, "items": ["..."] },
"wp_cli_commands": { "count": 1, "items": ["..."] },
"schedules": { "count": 2, "items": ["..."] },
"service_providers": { "count": 1, "items": ["..."] }
},
"performance": { "..." },
"cache": { "driver": "LaravelDiscoverCacheDriver", "enabled": true },
"modules": { "count": 0, "enabled": 0, "disabled": 0, "items": [] },
"theme": { "name": "Starter Theme", "version": "1.0.0", "template": "pollora-starter" }
}

When running a dev branch (dev-develop, dev-main, etc.), the command adapts its output:

Pollora dev-develop (latest stable: v13.4.0)

No misleading “update available” warning is shown for development installations.

The SystemInfoCollector service is registered as a singleton and can be injected into your own code to access system information programmatically:

use Pollora\Dashboard\Domain\Services\SystemInfoCollector;
class MyController
{
public function __construct(
private readonly SystemInfoCollector $collector
) {}
public function health(): array
{
return $this->collector->collect();
}
}