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

Porter Laravel Package

hdaklue/porter

Lightweight, fast access control for Laravel with roles modeled as domain logic. Assign roles between any Assignable (users/teams) and Roleable (projects/docs) via a Roster. Supports cross-database role assignments for complex, distributed architectures.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Porter's architecture aligns well with Laravel's service container and Eloquent patterns by treating roles as domain-specific business logic classes rather than database abstractions. Its minimal three-component design (Assignable, Roleable, Roster) avoids the bloat of traditional RBAC packages while enabling type-safe role definitions. Integration feasibility is high for Laravel 11/12 projects due to Composer-based installation and native Laravel integrations (Blade directives, middleware, Gates/Policies). However, technical risks are significant: 0 dependents and 121 stars indicate minimal real-world validation; the "2025-10-21" release date appears erroneous (likely a placeholder), raising concerns about stability; cross-database support lacks concrete test cases in documentation; and the single maintainer seeking co-maintainers suggests fragile long-term support. Key questions include: What production environments use this package? How is cross-database failover tested? Are there known performance bottlenecks at scale? What's the actual release timeline?

Integration Approach

Porter fits cleanly within modern Laravel stacks (PHP 8.3+, Laravel 11/12) and requires no additional infrastructure. Migration from traditional RBAC systems (e.g., Spatie) would involve: 1) Replacing permission tables with Porter's single Roster table via migration; 2) Refactoring roles into dedicated classes extending BaseRole; 3) Converting permission checks to assignment-based logic (e.g., `$user->getAssignmentOn($

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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport
twbs/bootstrap4
php-http/client-implementation
phpcr/phpcr-implementation
cucumber/gherkin-monorepo
haydenpierce/class-finder
psr/simple-cache-implementation
uri-template/tests