Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ranger Laravel Package

laravel/ranger

Beta Laravel introspection library that scans your codebase to discover routes, models, enums, broadcast events, env vars, and Inertia components. Register callbacks per item or collection and receive rich DTOs as Ranger walks your app.

View on GitHub
Deep Wiki
Context7

Ranger is a powerful introspection library for Laravel applications.

Frequently asked questions about Ranger
What Laravel versions does Ranger support, and will it work with my project?
Ranger officially supports Laravel 10+ as of version 0.1.9. It leverages Laravel’s core components like routes and Eloquent, so it should work seamlessly with modern Laravel applications. However, test thoroughly in a staging environment, especially if using custom route macros or complex Inertia setups, as edge cases may require manual tuning.
How do I install and run Ranger in my Laravel project?
Install via Composer with `composer require laravel/ranger --dev`. Register the service provider in `config/app.php` and use the `Ranger` facade or container binding. Call `$ranger->walk()` to trigger introspection, and register callbacks (e.g., `onRoute`, `onModel`) to process discovered components. Start with a minimal setup in development to avoid production risks.
Can Ranger generate API documentation like Swagger/OpenAPI?
Yes, Ranger’s structured DTOs (Data Transport Objects) for routes, models, and enums make it ideal for API documentation. Register a callback for routes (e.g., `onRoute`) to extract URIs, methods, and parameters, then format the output into Swagger/OpenAPI specs. Combine with tools like `darkaonline/l5-swagger` for full integration.
Will Ranger slow down my Laravel application in production?
Ranger’s performance depends on usage. Running `walk()` during boot may impact startup time for large codebases. Mitigate this by isolating introspection to CLI commands or queue workers, or feature-flag it for development-only. Benchmark `walk()` time in staging before production deployment, especially for monoliths with thousands of routes or models.
How do I customize Ranger to collect domain-specific data (e.g., policies, custom validation rules)?
Extend Ranger with custom collectors using `Ranger::extend()`. Define a new collector class (e.g., `PolicyCollector`) and register it to scan for policies or other components. Override DTOs to include metadata like Jira ticket IDs or business logic tags. Document your extensions for future maintenance.
Is Ranger safe to use in production, or should I wait for v1.0?
Ranger is in beta, so its API may change before v1.0. For production, isolate usage to non-critical paths (e.g., CLI tools, documentation generation) and pin to a specific dev branch or release candidate. Monitor the changelog for breaking changes, and consider waiting for v1.0 if stability is a priority for your use case.
Can Ranger help with schema validation or enforcing type consistency in models?
Absolutely. Use Ranger’s `onModel` callback to inspect model attributes and relationships, then validate against expected types (e.g., `string`, `int`). Integrate with tools like `spatie/laravel-data` or custom logic to enforce consistency. For example, reject models with mismatched attribute types during `walk()`.
What are some alternatives to Ranger for Laravel introspection?
Alternatives include `spatie/laravel-activitylog` (for event tracking), `nWidart/laravel-modules` (for modular introspection), or custom solutions using Laravel’s reflection tools. However, Ranger uniquely combines route, model, enum, and Inertia introspection in a single package, with callback-driven flexibility. For lightweight needs, `laravel-debugbar` offers basic route/model inspection.
How do I test Ranger’s output to ensure accuracy before production?
Validate Ranger’s DTOs against expected schemas by comparing output to Laravel’s native tools (e.g., `route:list`, `php artisan model:info`). Write unit tests for callbacks to assert data structure (e.g., route URIs, model attributes). For Inertia components, manually verify props and page mappings. Use a test environment to simulate production-like conditions.
Can Ranger track dependencies between models (e.g., for migration safety checks)?
Yes, Ranger’s `onModel` callback provides relationship metadata (e.g., `hasMany`, `belongsTo`). Process this data to build a dependency graph, then use it to validate migrations or enforce foreign key constraints. Combine with `laravel-migrations-generator` or custom logic to flag risky operations like dropping tables with active relationships.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony