Important
Ranger is currently in Beta, the API is subject (and likely) to change prior to the v1.0.0 release. All notable changes will be documented in the changelog.
Ranger is a powerful introspection library for Laravel applications. It walks through your codebase and collects detailed information about your application's components, including routes, models, enums, broadcast events, environment variables, and Inertia.js components.
With Ranger, you can register callbacks that fire as each component is discovered, each callback returns a detailed Data Transport Object (DTO) that you can decide what to do with.
use Laravel\Ranger\Ranger;
use Laravel\Ranger\Components;
use Illuminate\Support\Collection;
$ranger = app(Ranger::class);
// Register callbacks for individual items
$ranger->onRoute(function (Components\Route $route) {
echo $route->uri();
});
$ranger->onModel(function (Components\Model $model) {
foreach ($model->getAttributes() as $name => $type) {
//
}
});
$ranger->onEnum(function (Components\Enum $enum) {
//
});
$ranger->onBroadcastEvent(function (Components\BroadcastEvent $event) {
//
});
// Or register callbacks for entire collections
$ranger->onRoutes(function (Collection $routes) {
// Called once all of the routes have been discovered and processed
});
$ranger->onModels(function (Collection $models) {
// Called once all of the models have been discovered and processed
});
// Walk through the application and trigger all callbacks
$ranger->walk();| Collector | Description |
|---|---|
| Routes | All registered routes with URIs, parameters, HTTP verbs, controllers, validation rules, and possible responses |
| Models | Eloquent models with their attributes, types, and relationships |
| Enums | PHP backed enums with their cases and values |
| Broadcast Events | Events implementing ShouldBroadcast with their payloads |
| Broadcast Channels | Registered broadcast channels |
| Environment Variables | Variables defined in your .env file |
| Inertia Shared Data | Globally shared Inertia.js props |
| Inertia Components | Inertia.js page components with their expected props |
Thank you for considering contributing to Ranger! The contribution guide can be found in the Laravel documentation.
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Please review our security policy on how to report security vulnerabilities.
Laravel Ranger is open-sourced software licensed under the MIT license.