quintenmbusiness/laravel-analyzer

Scan a Laravel project and collect structured metadata about models, tables, columns, and relations.

Installs: 2

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/quintenmbusiness/laravel-analyzer

1.1 2026-01-20 21:55 UTC

This package is auto-updated.

Last update: 2026-01-20 21:57:21 UTC


README

A lightweight tool to scan a Laravel application and retrieve detailed, structured information about your laravel project for complex tasks.

Usage is super simple:

use quintenmbusiness\LaravelAnalyzer\LaravelAnalyzer;

$models      = (new LaravelAnalyzer())->modelResolver->getModels();
$controllers = (new LaravelAnalyzer())->controllerResolver->getControllers();

Methods (inline expandable outputs)

getModels()
Click to expand
Collection [
    ModelObject {
        name: "User",
        path: "App\\Models\\User",
        table: TableObject {
            name: "users",
            columns: [
                ColumnObject { name: "id", type: "number", rawType: "bigint(20) unsigned", nullable: false, default: null },
                ColumnObject { name: "name", type: "string", rawType: "varchar(255)", nullable: false, default: null },
                ColumnObject { name: "email", type: "string", rawType: "varchar(255)", nullable: false, default: null },
                ColumnObject { name: "email_verified_at", type: "datetime", rawType: "timestamp NULL", nullable: true, default: null },
                ColumnObject { name: "password", type: "string", rawType: "varchar(255)", nullable: false, default: null },
                ColumnObject { name: "remember_token", type: "string", rawType: "varchar(100)", nullable: true, default: null },
                ColumnObject { name: "created_at", type: "datetime", rawType: "timestamp NULL", nullable: true, default: null },
                ColumnObject { name: "updated_at", type: "datetime", rawType: "timestamp NULL", nullable: true, default: null },
            ]
        },
        relations: [
            ModelRelationObject { method: "notifications", returns: "MorphMany", relatedTable: "Illuminate\\Notifications\\DatabaseNotification" },
        ]
    }
]

getControllers()
Click to expand
Collection [
    ControllerObject {
        name: "UserController",
        path: "App\\Http\\Controllers\\UserController",
        methods: [
            ControllerMethodObject {
                methods: ["POST"],
                action: "users.update",
                actionName: "App\\Http\\Controllers\\UserController@update",
                prefix: "",
                url: "users/{user}",
                routeParameters: [
                    RouteParamObject { name: "user", optional: false, pattern: null, default: null },
                ],
                methodParameters: [
                    MethodParamObject { name: "request", hasType: true, type: "Illuminate\\Http\\Request", isOptional: false, default: null },
                    MethodParamObject { name: "product", hasType: true, type: "App\\Models\\User", isOptional: false, default: null },
                ],
                middleware: [
                    "web"
                ]
            },
        ]
    }
]