Getting Started
Runtime introspection helpers for PHP 8.4+ featuring trait detection, class hierarchy inspection, and reflection utilities.
Requirements
Section titled “Requirements”Introspect requires PHP 8.4+.
Installation
Section titled “Installation”Install Introspect with composer:
composer require cline/introspectQuick Start
Section titled “Quick Start”Fluent API
Section titled “Fluent API”use Cline\Introspect\Introspect;use App\Models\User;use Illuminate\Database\Eloquent\SoftDeletes;
// Inspect a class$traits = Introspect::class(User::class) ->whereUsesTrait(SoftDeletes::class) ->getAllTraits();
// Inspect an instance$methods = Introspect::instance($user) ->getPublicMethods();
// Query traits with wildcards$traits = Introspect::traits() ->whereNameEquals('App\Traits\*') ->get();Standalone Helpers
Section titled “Standalone Helpers”use function Cline\Introspect\usesTrait;use function Cline\Introspect\getAllTraits;
if (usesTrait(User::class, SoftDeletes::class)) { echo "User uses SoftDeletes";}
$traits = getAllTraits(User::class);Entry Points
Section titled “Entry Points”Core Introspection
Section titled “Core Introspection”Introspect::class($className) // Single class introspectionIntrospect::instance($object) // Object instance introspectionIntrospect::traits() // Query all traitsIntrospect::interfaces() // Query all interfacesIntrospect::classes() // Query declared classesLaravel Introspection
Section titled “Laravel Introspection”Introspect::views() // Query Laravel Blade viewsIntrospect::routes() // Query Laravel routesIntrospect::middleware() // Query Laravel middlewareIntrospect::events() // Query Laravel events and listenersIntrospect::jobs() // Query Laravel queue jobsIntrospect::providers() // Query service providersIntrospect::models() // Query Eloquent modelsIntrospect::model($modelClass) // Detailed model introspectionPHP Type Introspection
Section titled “PHP Type Introspection”Introspect::enum($enumName) // Inspect PHP 8.1+ enumsIntrospect::constants($className) // Inspect class constantsIntrospect::callable($callable) // Inspect closures, invokables, callable arraysIntrospect::method($class, $name) // Detailed method introspectionFeatures
Section titled “Features”- Fluent API - Laravel-inspired chainable query builders
- Wildcard Support - Pattern matching with
whereNameEquals('App\Traits\*') - Class Introspection - Inspect traits, interfaces, methods, properties, attributes
- Instance Introspection - Work directly with object instances
- Trait & Interface Queries - Find and filter across your codebase
- Laravel Integration - Query views, routes, middleware, events, jobs, providers
- Model Discovery - Find and introspect Eloquent models with relationships
- Enum Inspection - Introspect PHP 8.1+ enums with backing types and cases
- Callable Inspection - Analyze closures, invokables, and callable arrays
- Standalone Helpers - Use as functions or fluent API