naimul / db-visualizer
Laravel Database & Code Intelligence Visualizer (N+1, Relations, Performance Analyzer)
v1.0.6
2026-04-07 10:05 UTC
Requires
- php: ^8.1
- illuminate/cache: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/database: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/filesystem: ^10.0 || ^11.0 || ^12.0 || ^13.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0 || ^13.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0 || ^10.0 || ^11.0
README
A powerful Laravel package to analyze your application models, relationships, database usage, and detect performance issues like N+1 queries, unused columns, and missing eager loading.
๐ Features
- ๐ Scan all Eloquent Models (App + Modules support)
- ๐ Auto-detect relationships
- ๐ง Detect N+1 query risks probability
- โ Find unused columns
- โก Detect missing eager loading
- ๐ Performance scoring system (0โ100)
- ๐งน Code usage analysis
- ๐งฉ Supports Laravel Modules (nwidart style)
๐ฆ Installation
Install via Composer:
composer require naimul/db-visualizer
โ๏ธ Auto Service Provider
If you are using Laravel 10+, the package will auto-register.
If not, add manually:
Naimul\DbVisualizer\DbVisualizerServiceProvider::class,
๐ Routes
After installation, visit:
/dbv
/dbv/data
/dbv/detail/{model}
Example:
http://your-app.test/dbv/data
๐ API Endpoints
Get all models analysis
GET /dbv/data
Search models
GET /dbv/data?search=User
Model details
GET /dbv/detail/User
๐ง What It Analyzes
โ Models
- Table name
- Columns
- Relations
- Soft deletes
โ Relations
- Used / unused detection
- N+1 query detection probability
- Missing eager loading
โ Columns
- Used / unused detection
โ Performance Score
-
Calculates score (0โ100)
-
Quality labels:
- Excellent
- Good
- Average
- Poor
๐ Example Response
{
"model": "User",
"table": "users",
"performance_score": 85,
"quality_label": "Good Quality",
"unused_columns_count": 2,
"n_plus_one_issues": 1,
"relations": [
{
"method": "posts",
"type": "HasMany",
"used": true,
"n_plus_one": false
}
]
}
โก Performance Scoring Rules
| Issue | Penalty |
|---|---|
| Unused relation | -10 |
| Unused column | -2 |
| N+1 issue | -15 |
| Missing eager load | -10 |
Bonus:
- Soft deletes: +5
- Cache usage: +5
- API Resource usage: +5
๐ Requirements
- PHP >= 8.1
- Laravel 10, 11, 12, 13 supported
๐ Supported Structure
app/ModelsModules/*/EntitiesModules/*/Models- Blade Views scanning
๐ฅ Use Case
This package is useful for:
- Optimizing large Laravel applications
- Detecting hidden performance issues
- Code quality auditing
- Refactoring legacy systems
- Interview/demo projects
๐งฉ Future Plans
- N+1 Query file locate
- eagerloading File locate
- Performance booster
๐ค Contributing
Pull requests are welcome. For major changes, please open an issue first.
๐ License
MIT License ยฉ Open Source
โญ Support
If you like this package, give it a โญ on GitHub.