PHPackages                             onamfc/laravel-route-visualizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. onamfc/laravel-route-visualizer

ActiveLibrary[Debugging &amp; Profiling](/categories/debugging)

onamfc/laravel-route-visualizer
===============================

A comprehensive route visualization package for Laravel applications

1.0.1(10mo ago)8201MITBladePHP ^8.1

Since Aug 20Pushed 10mo agoCompare

[ Source](https://github.com/onamfc/laravel-route-visualizer)[ Packagist](https://packagist.org/packages/onamfc/laravel-route-visualizer)[ RSS](/packages/onamfc-laravel-route-visualizer/feed)WikiDiscussions main Synced today

READMEChangelog (2)Dependencies (5)Versions (2)Used By (0)

Laravel Route Visualizer
========================

[](#laravel-route-visualizer)

A comprehensive route visualization package for Laravel applications that provides an interactive web interface to explore, analyze, and export your application's routing structure with advanced validation and multiple visualization options.

Features
--------

[](#features)

- **Interactive Route Explorer**: Web-based dashboard with advanced search and filtering
- **Network Graph Visualization**: Interactive network graphs using Vis.js for route relationships
- **Tree View**: Hierarchical visualization of route structure organized by prefixes
- **Advanced Filtering**: Filter by HTTP methods, middleware, middleware groups, controllers, domains, namespaces, and more
- **Route Validation**: Automatic detection of duplicate routes, missing controllers, and missing methods
- **Export Capabilities**: Export filtered route data to HTML, JSON, or SVG formats
- **Performance Optimized**: Built-in caching, pagination, and lazy loading for large route sets
- **Security Aware**: Hide sensitive routes in production environments
- **Customizable**: Configurable visualization options, and multiple templates
- **Copy to Clipboard**: One-click copying of route URIs and controller actions
- **Laravel Telescope Integration**: Direct links to route performance data when Telescope is installed

Requirements
------------

[](#requirements)

- PHP ^8.1
- Laravel ^10.0|^11.0|^12.0

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require onamfc/laravel-route-visualizer
```

The package will automatically register itself via Laravel's auto-discovery feature.

### Quick Installation

[](#quick-installation)

Use the install command to publish all necessary files:

```
php artisan route-visualizer:install
```

This command will publish the configuration file, views, and assets in one step.

### Manual Installation

[](#manual-installation)

If you prefer to publish files individually:

#### Publish Configuration

[](#publish-configuration)

```
php artisan vendor:publish --tag=route-visualizer-config
```

#### Publish Views (Optional)

[](#publish-views-optional)

If you want to customize the views:

```
php artisan vendor:publish --tag=route-visualizer-views
```

#### Publish Assets (Optional)

[](#publish-assets-optional)

If you want to serve assets locally:

```
php artisan vendor:publish --tag=route-visualizer-assets
```

Configuration
-------------

[](#configuration)

The configuration file `config/route-visualizer.php` allows you to customize:

```
return [
    // Enable/disable the visualizer (auto-disabled in production)
    'enabled' => env('ROUTE_VISUALIZER_ENABLED', app()->environment(['local', 'testing'])),

    // Route prefix for the visualizer dashboard
    'route_prefix' => 'route-visualizer',

    // Middleware to apply to visualizer routes
    'middleware' => ['web'],

    // Cache settings for performance
    'cache' => [
        'enabled' => true,
        'ttl' => 3600, // 1 hour
        'key' => 'route_visualizer_data',
    ],

    // Visualization library and options
    'visualization' => [
        'layout' => 'hierarchical', // hierarchical, network
        'pagination' => [
            'enabled' => true,
            'per_page' => 50,
        ],
    ],

    // Export settings
    'export' => [
        'path' => storage_path('app/route-maps'),
        'formats' => ['html', 'json', 'svg'],
        'templates' => ['default', 'minimal', 'detailed'],
    ],

    // Security settings
    'security' => [
        'hide_sensitive_routes' => true,
        'sensitive_patterns' => [
            'admin/*',
            'api/admin/*',
            '*/password/*',
            'telescope/*',
            'horizon/*',
        ],
    ],

    // Validation settings
    'validation' => [
        'check_duplicates' => true,
        'check_missing_controllers' => true,
        'check_missing_methods' => true,
    ],

    // Integration settings
    'integrations' => [
        'telescope' => [
            'enabled' => class_exists(\Laravel\Telescope\TelescopeServiceProvider::class),
            'base_url' => '/telescope',
        ],
    ],
];
```

Usage
-----

[](#usage)

### Web Interface

[](#web-interface)

Once installed, visit the route visualizer dashboard:

```
http://your-app.com/route-visualizer

```

The dashboard provides:

- **Overview Statistics**: Total routes, controllers, middleware, domains, namespaces, and validation issues [![Overview Stats](./docs/assets/route-visualizor--overview.jpg)](./docs/assets/route-visualizor--overview.jpg)
- **Advanced Search &amp; Filtering**: Real-time search with filters for methods, middleware, domains, namespaces, and more [![Advanced Filtering](./docs/assets/route-visualizor--filter.jpg)](./docs/assets/route-visualizor--filter.jpg)
- **Multiple View Modes**:
    - **List View**: Detailed tabular view with pagination and copy-to-clipboard functionality [![List View](./docs/assets/route-visualizor--list-view.jpg)](./docs/assets/route-visualizor--list-view.jpg)
    - **Graph View**: Interactive network visualization using Vis.js [![Graph View](./docs/assets/route-visualizor--graph-view.jpg)](./docs/assets/route-visualizor--graph-view.jpg)
    - **Tree View**: Hierarchical visualization organized by route structure [![Tree View](./docs/assets/route-visualizor--tree-view.jpg)](./docs/assets/route-visualizor--tree-view.jpg)
- **Route Validation**: Visual indicators for duplicate routes, missing controllers, and missing methods
- **Export Options**: Download filtered route data in various formats
- **Telescope Integration**: Direct links to route performance data (when available)

### Artisan Commands

[](#artisan-commands)

#### Install Package

[](#install-package)

Install and publish all package files:

```
php artisan route-visualizer:install
```

#### Export Routes

[](#export-routes)

Export your route structure to static files with advanced filtering:

```
# Export to HTML (default)
php artisan route:export

# Export to JSON
php artisan route:export --format=json

# Export to SVG
php artisan route:export --format=svg

# Export with filters
php artisan route:export --filter-method=GET --filter-search=api

# Filter by middleware
php artisan route:export --filter-middleware=auth

# Filter by domain
php artisan route:export --filter-domain=api.example.com

# Filter by namespace
php artisan route:export --filter-namespace="App\Http\Controllers\Api"

# Filter by middleware group
php artisan route:export --filter-middleware-group=web

# Specify custom output path
php artisan route:export --output=/path/to/routes.html

# Use custom template
php artisan route:export --template=minimal
```

### Programmatic Usage

[](#programmatic-usage)

You can also use the route scanner programmatically:

```
use onamfc\LaravelRouteVisualizer\Services\RouteScanner;

class YourController extends Controller
{
    public function analyzeRoutes(RouteScanner $scanner)
    {
        // Get all routes with validation
        $routes = $scanner->scanRoutes();

        // Get routes grouped by controller
        $byController = $scanner->getRoutesGroupedByController();

        // Get routes grouped by middleware
        $byMiddleware = $scanner->getRoutesGroupedByMiddleware();

        // Get routes grouped by domain
        $byDomain = $scanner->getRoutesGroupedByDomain();

        // Get routes grouped by namespace
        $byNamespace = $scanner->getRoutesGroupedByNamespace();

        // Find duplicate routes
        $duplicates = $scanner->findDuplicateRoutes();

        // Get hierarchical tree data
        $treeData = $scanner->getTreeData();

        // Clear cache
        $scanner->clearCache();

        return response()->json($routes);
    }
}
```

API Endpoints
-------------

[](#api-endpoints)

The package provides several API endpoints:

- `GET /route-visualizer/routes` - Get filtered route data with pagination
- `GET /route-visualizer/graph` - Get network graph data for Vis.js
- `GET /route-visualizer/tree-data` - Get hierarchical tree data
- `POST /route-visualizer/clear-cache` - Clear route cache

### Query Parameters

[](#query-parameters)

Filter routes using query parameters:

```
GET /route-visualizer/routes?search=api&method=POST&middleware=auth&domain=api.example.com&namespace=App\Http\Controllers\Api&middleware_group=web&page=1&per_page=50

```

Customization
-------------

[](#customization)

### Custom Views

[](#custom-views)

After publishing views, you can customize the dashboard:

```
php artisan vendor:publish --tag=route-visualizer-views
```

Edit the views in `resources/views/vendor/route-visualizer/`.

### Custom Styling

[](#custom-styling)

You can customize colors and styling by:

1. Publishing the views and modifying the CSS
2. Overriding the Tailwind classes in your custom views
3. Adding custom CSS to your application's stylesheets

### Custom Export Templates

[](#custom-export-templates)

Create custom export templates by extending the base export view:

```
// In your AppServiceProvider
View::composer('route-visualizer::export.html', function ($view) {
    $view->with('customData', 'Your custom data');
});
```

### Network Visualization

[](#network-visualization)

The package uses Vis.js for interactive network graphs that show relationships between routes and controllers. The visualization provides:

- Interactive node dragging and zooming
- Color-coded nodes for different types (controllers vs routes)
- Validation status indicators (errors in red, warnings in yellow)
- Hover tooltips with detailed information

Security Considerations
-----------------------

[](#security-considerations)

### Production Usage

[](#production-usage)

The visualizer is automatically disabled in production environments. To enable it:

```
ROUTE_VISUALIZER_ENABLED=true
```

### Sensitive Routes

[](#sensitive-routes)

Configure patterns to hide sensitive routes:

```
'security' => [
    'hide_sensitive_routes' => true,
    'sensitive_patterns' => [
        'admin/*',
        'api/admin/*',
        '*/password/*',
        'telescope/*',
        'horizon/*',
        'nova/*',
    ],
],
```

### Access Control

[](#access-control)

Add authentication middleware:

```
'middleware' => ['web', 'auth', 'admin'],
```

Performance
-----------

[](#performance)

### Caching

[](#caching)

Enable caching for better performance with large route sets:

```
'cache' => [
    'enabled' => true,
    'ttl' => 3600, // 1 hour
],
```

### Pagination

[](#pagination)

The package includes built-in pagination and lazy loading:

```
'visualization' => [
    'pagination' => [
        'enabled' => true,
        'per_page' => 50,
    ],
],
```

### Memory Usage

[](#memory-usage)

For applications with thousands of routes, consider:

- Enabling route caching
- Using pagination in the web interface
- Filtering routes at the scanner level
- Using the export functionality for static analysis

Validation Features
-------------------

[](#validation-features)

The package automatically validates your routes and identifies:

- **Duplicate Routes**: Routes with identical URIs and HTTP methods
- **Missing Controllers**: Routes pointing to non-existent controller classes
- **Missing Methods**: Routes pointing to non-existent controller methods

Configure validation in your config file:

```
'validation' => [
    'check_duplicates' => true,
    'check_missing_controllers' => true,
    'check_missing_methods' => true,
],
```

Laravel Telescope Integration
-----------------------------

[](#laravel-telescope-integration)

When Laravel Telescope is installed, the visualizer automatically adds direct links to route performance data:

```
'integrations' => [
    'telescope' => [
        'enabled' => class_exists(\Laravel\Telescope\TelescopeServiceProvider::class),
        'base_url' => '/telescope',
    ],
],
```

Testing
-------

[](#testing)

Run the package tests:

```
vendor/bin/phpunit
```

The package includes comprehensive feature and unit tests covering:

- Route scanning and data extraction
- API endpoints and filtering
- Export functionality
- Validation features
- Graph data generation

Contributing
------------

[](#contributing)

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

License
-------

[](#license)

This package is open-sourced software licensed under the [MIT license](LICENSE.md).

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance54

Moderate activity, may be stable

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

317d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/015bb990415173ada3a81ab055dc667409d64ad41bf8c94c433915210100e36e?d=identicon)[sitetransiiton](/maintainers/sitetransiiton)

---

Top Contributors

[![onamfc](https://avatars.githubusercontent.com/u/8187699?v=4)](https://github.com/onamfc "onamfc (28 commits)")

---

Tags

laravelroutesdebuggingdevelopmentvisualization

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/onamfc-laravel-route-visualizer/health.svg)

```
[![Health](https://phpackages.com/badges/onamfc-laravel-route-visualizer/health.svg)](https://phpackages.com/packages/onamfc-laravel-route-visualizer)
```

###  Alternatives

[barryvdh/laravel-debugbar

PHP Debugbar integration for Laravel

19.3k133.0M756](/packages/barryvdh-laravel-debugbar)[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

77022.3M151](/packages/laravel-mcp)[laravel/boost

Laravel Boost accelerates AI-assisted development by providing the essential context and structure that AI needs to generate high-quality, Laravel-specific code.

3.5k21.5M588](/packages/laravel-boost)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.6k29.9M146](/packages/laravel-cashier)[fruitcake/laravel-debugbar

PHP Debugbar integration for Laravel

19.3k2.3M65](/packages/fruitcake-laravel-debugbar)[laravel/pulse

Laravel Pulse is a real-time application performance monitoring tool and dashboard for your Laravel application.

1.7k15.1M132](/packages/laravel-pulse)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
