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

Laravel Plugin Laravel Package

saloonphp/laravel-plugin

Laravel plugin for Saloon that adds first-class Laravel integration: config publishing, service provider bindings, facades, Artisan tooling, and convenient client setup. Makes using Saloon HTTP connectors and requests feel native inside Laravel apps.

Deep Wiki
Context7

Product Decisions This Supports

  • API Integration Acceleration: Enables rapid development of HTTP clients for third-party APIs (e.g., payment gateways, SaaS platforms, or internal microservices) without reinventing boilerplate code for requests, retries, or error handling.
  • Roadmap Alignment: Justifies prioritizing API-first features (e.g., real-time data sync, webhooks, or B2B integrations) by reducing technical debt in API client implementations.
  • Build vs. Buy: Avoids custom solutions for API clients (e.g., hand-written Guzzle clients) when Saloon’s abstractions (e.g., contracts, connectors, and observability) align with team needs.
  • Use Cases:
    • B2B Integrations: Standardize interactions with partners (e.g., ERP, CRM, or logistics APIs).
    • Legacy Modernization: Replace outdated API clients with maintainable, testable code.
    • Developer Experience: Reduce onboarding time for engineers unfamiliar with API best practices (e.g., rate limiting, authentication flows).

When to Consider This Package

  • Adopt if:

    • Your Laravel app relies on 3+ third-party APIs with repetitive request logic (e.g., auth, retries, payload validation).
    • You need contract-first development (define API specs as PHP classes before implementation).
    • Your team prioritizes testability (Saloon’s mocking and contract testing reduce flakiness).
    • You’re using Laravel 9+ and want seamless integration with service containers, queues, or events.
    • You require observability (e.g., logging, metrics, or debugging tools for API calls).
  • Look elsewhere if:

    • Your APIs are simple CRUD endpoints with no shared logic (overkill for basic GET/POST calls).
    • You’re locked into a non-Laravel stack (e.g., Symfony, Django) or need multi-language support.
    • Your team lacks PHP expertise but has strong TypeScript/Node.js preferences (consider axios or openapi-typescript).
    • You need advanced WebSocket/gRPC support (Saloon focuses on HTTP).
    • Your org prohibits MIT-licensed dependencies (though this is rare).

How to Pitch It (Stakeholders)

For Executives: "This package lets us build API integrations 30% faster by eliminating boilerplate code for requests, retries, and error handling. For example, connecting to a payment processor or CRM would take weeks less time than custom solutions, while reducing bugs from inconsistent API usage. It’s like using a ‘Laravel for APIs’—standardized, testable, and scalable. The MIT license and active maintenance (last release: 2026) make it a low-risk choice."

For Engineering: *"Saloon’s Laravel plugin gives us:

  • Contracts-first API development: Define interfaces for APIs before implementing them (e.g., PaymentGatewayContract).
  • Built-in resilience: Automatic retries, circuit breakers, and queue support for long-running requests.
  • Observability: Log every API call with metadata (status, duration, payloads) out of the box.
  • Mocking: Unit-test API interactions without hitting real endpoints.
  • Laravel-native: Works with service providers, queues, and events—no context switching.

Tradeoff: Slight learning curve for Saloon’s terminology (e.g., ‘Connectors’ vs. ‘Clients’), but the payoff is consistent, maintainable API code across the team."*

For Developers: *"No more writing the same auth headers or retry logic for every API call. With Saloon:

// Define a contract (API spec)
class StripeContract extends Contract {
    protected ?string $baseUrl = 'https://api.stripe.com';
}

// Use it in a connector (client)
class StripeConnector extends Connector {
    public function createCustomer(array $data): array {
        return $this->send(new CreateCustomerRequest($data));
    }
}

// Call it anywhere in Laravel
$customer = app(StripeConnector::class)->createCustomer(['email' => 'user@example.com']);

Bonus: Add rate limiting, middleware, or logging with one line of config."*

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
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
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