Laravel Packages

Analyze Laravel Codebases with the Laravel Introspect Package

Published
Analyze Laravel Codebases with the Laravel Introspect Package image

With the Laravel Introspect package, you can analyze Laravel codebases, querying views, models, routes, classes, and more directly from your codebase using a type-safe fluent API:

Are you working on a complex refactoring job and need to find all the places where a specific view is used? Are you building devtools or other things which need information about the codebase? Do you need structured schema information of your Eloquent data model?

These are all use cases where you need to introspect your codebase and find out where things are used, how they are used, and what they are. This package does exactly that.

Using this package, you can query a Laravel application's codebase programmatically to find specific views, routes, classes, models, and more:

use Mateffy\Introspect\Facades\Introspect;
 
$views = Introspect::views()
->whereNameEquals('components.*.button')
->whereUsedBy('pages.admin.*')
->get();
 
$routes = Introspect::routes()
->whereUsesController(MyController::class)
->whereUsesMiddleware('auth')
->whereUsesMethod('POST')
->get();
 
$classes = Introspect::classes()
->whereImplements(MyInterface::class)
->whereUses(MyTrait::class)
->get();
 
$models = Introspect::models()
->whereHasProperties(['name', 'email'])
->whereHasFillable('password')
->get();
 
// Access Eloquent properties, relationships, casts, etc. directly
$detail = Introspect::model(User::class);
 
// Model to JSON schema
$schema = $detail->schema();

Main Features

  • Query views, routes, classes, and models with a fluent API
  • Use wildcards (*) to match multiple views, routes, classes, and models
  • Parse properties, relationships + their types, and more directly from Eloquent model code
  • (De-)serialize queries to/from JSON (perfect for LLM tool calling)

👨‍💻 Check it out on GitHub: capevace/laravel-introspect

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Building EasyReply: How We Used Laravel to Unify Customer Support image

Building EasyReply: How We Used Laravel to Unify Customer Support

Read article
PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum image

PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum

Read article
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article