Download the PHP package lenorix/laravel-early-hints without Composer

On this page you can find all versions of the php package lenorix/laravel-early-hints. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-early-hints

Tell to client what will need later

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Lets the client know as early as possible what resources it will need, so it can start loading them sooner. This package provides a facade to add Link HTTP headers (e.g. preconnect) to a response.

Support us

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

Installation

You can install the package via composer:

Usage

Use the EarlyHints facade to add a Link header to a response.

addLinkHeader

Adds a single URI to the Link header.

addLinkHeaders

Same as addLinkHeader, but accepts an array of URIs.

Both methods default rel to preconnect, and also accept crossorigin, imagesrcset, imagesizes, media and type, all omitted from the header unless provided. Any existing Link header on the response is preserved and the new entries are appended to it.

Streamed responses

The automatic middleware skips StreamedResponse entirely, since it can't inspect a body that doesn't exist yet as a string. If you know in advance what a streamed response will reference (e.g. the images inside a JSON body sent via response()->streamJson(...)), call the facade yourself before returning it:

This works because headers on a StreamedResponse (a subclass of Symfony's Response) are only sent once, right before the streaming callback runs. As long as addLinkHeaders is called before the response is returned, the Link header goes out with the rest of the headers in that first flush — adding it from inside the streaming callback itself would be too late, since headers have already been sent by then.

Automatic mode

The early-hints middleware inspects the response and adds the Link header for you. It is opt-in, so add it wherever you want it to run:

It detects, on HTML responses:

And on JSON responses:

A resource on a different origin than the request gets rel="preconnect" to that origin instead of a full preload — cheaper, still helpful, and several resources from the same third party collapse into a single preconnect.

URIs are detected in every form: full URLs, protocol relative URLs, absolute paths and relative paths, with or without a signed query string. Streamed responses, downloads and redirects are left untouched.

Auto-detected images are capped, in document order, to images_limit (20 by default); an image with fetchpriority="high" always counts regardless of the cap.

Detected links are added from the shortest URI to the longest, and stop before the Link header grows past max_header_bytes (4096 bytes by default), which is where web servers usually start rejecting headers. This budget covers the whole wire line, so it also applies when a link is added manually through the EarlyHints facade: a link that would push the header past the limit is silently skipped instead of being emitted.

Each detection can be turned off in the published config file:

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The Unlicense. Please see License File for more information.


All versions of laravel-early-hints with dependencies

PHP Build Version
Package Version
Requires php Version ^8.4
spatie/laravel-package-tools Version ^1.16
illuminate/contracts Version ^11.0||^12.0||^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package lenorix/laravel-early-hints contains the following files

Loading the files please wait ...