yakeing/get_header
yakeing/get_header is a lightweight Laravel/PHP package for retrieving HTTP headers from URLs. It provides a simple way to inspect response status, content type, redirects, and other header metadata in your applications.
Content-Type, Location, cache and security headers) without hand-rolling socket or cURL logic. Its existence tells you the need is real and small enough that someone packaged it — and its 33 stars, zero dependents, and archived status tell you the buy option is not viable at scale.Content-Type, or verifying a webhook endpoint before enabling it), an archived 2019 library is an unacceptable single point of failure. If it is cosmetic (showing a favicon in a preview card), the risk is tolerable but still not worth taking when a maintained alternative ships with the framework.Illuminate\Support\Facades\Http (Guzzle under the hood), which covers redirects, timeouts, custom headers, TLS configuration, and structured response access.Consider it only when all of the following hold:
Look elsewhere when any of the following apply — which is nearly every case:
Http::head($url), Http::withHeaders([...])->get($url), and $response->headers() cover the same ground with maintained code, PSR-18 compliance, retries, and timeouts. Choosing the archived package is choosing a second HTTP stack for no benefit.get_headers() is a single function call with an associative-array flag. If that is genuinely all you need, you need no dependency at all — which is the strongest argument against this package.For executives: We evaluated a small open-source PHP utility for fetching HTTP response headers. It is not a fit. It was last released in 2019, the repository is archived with no maintainer, it has 33 stars and no downstream users, and it does not claim compatibility with current PHP or Laravel versions. The capability it provides — checking a URL's status and headers — is already built into our framework, so adopting it would add a third-party dependency, a license review item (MPL-2.0, file-level copyleft), and an unpatched security surface in exchange for zero functional gain. Recommendation: no adoption; no cost to this decision because the replacement is already in the stack.
For engineering: Use Laravel's HTTP client. Http::timeout(5)->withoutRedirecting()->head($url) gives you status, Location, and headers, with retries, TLS configuration, and a maintained Guzzle foundation. If you need raw get_headers() semantics for a script, call the built-in. Do not vendor yakeing/get_header into new work; if it already exists in our codebase, open a migration ticket — the replacement is a handful of lines, so the swap cost is hours, not sprints.
For product: The feature areas that need header inspection — link health, preview cards, endpoint verification, security-header checks — are all supported today without this package. Nothing on the roadmap should be blocked, accelerated, or descoped because of this decision. The one thing to flag is that any feature requiring trusted URL fetching (user-submitted links, SSRF-adjacent flows) needs a deliberate policy on timeouts, redirect limits, and private-IP blocking, which is a design conversation, not a library choice.
How can I help you explore Laravel packages today?