Weave 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

Curl Request Laravel Package

teknoo/curl-request

A lightweight PHP wrapper around cURL for building and sending HTTP requests. It offers a simple object-oriented API for handling URLs, headers, methods, and responses, making it easy to integrate clean cURL-based calls into any PHP project.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for the outbound HTTP layer. The package's stated value proposition — a cURL wrapper with Symfony dependencies stripped out — is a real architectural concern: teams want HTTP calls without dragging a framework stack along. In a Laravel context that concern is already solved by Illuminate\Support\Facades\Http (a thin, testable wrapper over Guzzle), so this package's differentiator is moot. The decision this surfaces is not "should we adopt it" but "which HTTP client is our house standard, and what's our policy on third-party wrappers around it."
  • Dependency and maintenance policy. A DEPRECATED, archived repository with 1 star and 0 dependents is a negative-signal artifact. This package is a useful forcing function for agreeing on an adoption checklist (maintained? security patching? CI? PSR-18 compliance? PHP/Laravel version matrix?), then applying it uniformly to every future vendor evaluation.
  • Roadmap: legacy migration inventory. If any internal service still calls cURL directly, or if a legacy branch of the codebase pulled from the zeroem/curl-bundle lineage this was forked from, that is a roadmap item — migrate it to Laravel's HTTP client with a proper fake/mock story in tests. The archived status converts "nice to have" into "scheduled work, with a fork-or-replace decision date."
  • Use-case triage. The legitimate use cases (partner API integrations, webhook dispatch, low-level cURL option tuning like proxies, timeouts, TLS settings, streaming responses) are all served today by Guzzle directly or by Laravel's client. Nothing in the package's scope is a capability gap.
  • Security posture. An archived package receives no CVE fixes. For anything touching outbound credentials, TLS verification, or request signing, that's a product risk, not an engineering preference — it belongs in the risk register.

When to Consider This Package

Consider it only in narrow, unusual conditions:

  • You have a non-Laravel, non-Symfony PHP service where you genuinely cannot add Guzzle or symfony/http-client, and you need a minimal cURL wrapper — and even then, you would be adopting archived code.
  • You need to read it as a reference implementation, not a dependency: the "Symfony dependencies removed" design is a reasonable short study for how to keep a thin transport layer decoupled from a framework.
  • You are already locked into a historical fork and need to understand intent before extracting yourself.

Look elsewhere — and by "elsewhere" the default answer is Laravel's Http facade — in essentially every other case:

  • Guzzle / guzzlehttp/guzzle for full control over cURL options, middleware, pooling, and retries, still actively maintained and PSR-18 compatible.
  • symfony/http-client if you want a maintained, dependency-light alternative with good concurrency.
  • An in-house thin wrapper if the actual requirement is organizational (consistent auth headers, logging, retry policy, tracing) rather than transport-level.
  • Http::fake() and the Laravel HTTP client's test helpers if the hidden motivation was testability — that's solved.
  • Any situation where security patching, PHP 8.x support, or Laravel 10/11+ compatibility is required. Archived projects do not track upstream runtime changes, and this one has no community to notice breakage.

Also relevant: 0 dependents and 1 star mean there is effectively no ecosystem validation, no issue-tracker triage history to learn from, and no one to escalate to. If a team insists on this package, the correct response is a fork with an assigned owner — not a Composer requirement.

How to Pitch It (Stakeholders)

To executives: We evaluated a lightweight cURL wrapper for our PHP services. It is explicitly deprecated, archived by its author, has no downstream users, and receives no security updates — so adopting it would create maintenance liability with no offsetting capability. We are recommending against adoption and standardizing on Laravel's built-in HTTP client instead, which gives us the same control with active upstream support, a mocking story for tests, and zero additional dependencies. Net effect: no added risk, no added vendor, and one fewer thing to patch.

To engineering: This is a non-starter as a dependency — archived, 1 star, 0 dependents, no security patching, untested against current PHP and Laravel versions. It existed to offer a framework-free cURL wrapper, which was a fair goal in its era but is now covered natively: use the Http facade for application code, drop to Guzzle when you need raw cURL options, and use Http::fake() in tests. If someone has a concrete case the native client can't handle, bring the case, not the library. Any existing code descended from this lineage should be ticketed for migration off it — that's the actual deliverable this evaluation produced.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels