graham-campbell/manager
Laravel Manager provides a lightweight base for building driver-based “manager” services in Laravel apps. Supports PHP 7.4–8.5 and Laravel 8–13, offering consistent configuration, driver creation, and resolution patterns for your own integrations.
Standardizing Multi-Driver Architectures: Accelerate development of driver-based services (e.g., payment gateways, cloud storage, analytics) by adopting a consistent Manager pattern across the product. Reduces fragmentation in service implementations and simplifies future driver additions (e.g., supporting a new payment processor like Adyen alongside Stripe).
Manager to unify Stripe, PayPal, and Square integrations under a single PaymentManager, enabling seamless driver swapping for customers.Build vs. Buy for Internal Tools: Justify investing in custom Laravel packages (e.g., internal CRM connectors, legacy system integrations) by leveriding this package to avoid reinventing connection management logic. Ideal for teams with limited backend resources but needing scalable, maintainable abstractions.
Manager to standardize authentication, rate limiting, and error handling, reducing technical debt.Roadmap for Modular Extensibility: Prioritize modular, pluggable services (e.g., NotificationManager for email/SMS/Slack) to align with composable architecture trends. Enables teams to extend functionality without monolithic refactors.
Manager to support multiple email providers (SendGrid, Mailgun) and later add SMS (Twilio) or push notifications (Firebase) with minimal code changes.Cost Efficiency for Third-Party Abstractions: Reduce development time for wrapper packages (e.g., Laravel-GitHub, Laravel-DigitalOcean) by inheriting AbstractManager, cutting boilerplate for connection pooling, config validation, and dynamic method calls.
Adopt When:
Look Elsewhere If:
For Executives: "This package lets us build and scale driver-based services faster—think payment processors, cloud storage, or APIs—without custom connection logic. For example, if we add a new payment gateway like Adyen, we’ll save weeks of dev time by reusing this standardized Manager pattern. It’s like a Lego block for service integrations, reducing technical debt and making it easier to swap providers later. The MIT license and Tidelift support also mean we’re covered for maintenance."
For Engineering: *"This is a batteries-included solution for managing multi-driver services in Laravel. It handles:
manager->upload() instead of manager->connection()->upload()).Use it for: Payment gateways, cloud storage, analytics tools, or any service with multiple backends. No config needed—just extend AbstractManager and implement createConnection(). Examples include Laravel Flysystem and Laravel GitHub."*
For Product Teams: *"This helps us launch integrations faster and reduce customer friction. For instance:
Impact: Faster time-to-market for features, lower maintenance costs, and happier customers who can mix-and-match services."*
How can I help you explore Laravel packages today?