Download the PHP package spatie/laravel-referer without Composer
On this page you can find all versions of the php package spatie/laravel-referer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spatie/laravel-referer
More information about spatie/laravel-referer
Files in spatie/laravel-referer
Package laravel-referer
Short Description Keep a visitor's original referer in session
License MIT
Homepage https://github.com/spatie/laravel-referer
Informations about the package laravel-referer
Remember a visitor's original referer
Remember a visitor's original referer in session. The referer is (highest priority first):
- The
utm_source
query parameter - The domain from the request's
Referer
header if there's an external host in the URL - Empty
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:
The package will automatically register itself in Laravel 5.5. In Laravel 5.4. you'll manually need to register the Spatie\Referer\RefererServiceProvider
service provider in config/app.php
.
You can publish the config file with:
Publishing the config file is necessary if you want to change the key in which the referer is stored in the session or if you want to disable a referer source.
Usage
To capture the referer, all you need to do is add the Spatie\Referer\CaptureReferer
middleware to your middleware stack. In most configuration's, you'll only want to capture the referer in "web" requests, so it makes sense to register it in the web
stack. Make sure it comes after Laravel's StartSession
middleware!
The easiest way to retrieve the referer is by just resolving it out of the container:
Or you could opt to use Laravel's automatic facades:
The captured referer is (from high to low priority):
- The
utm_source
query parameter, or: - The domain from the request's
Referer
header if there's an external host in the URL, or: - Empty
An empty referer will never overwrite an exisiting referer. So if a visitor comes from google.com and visits a few pages on your site, those pages won't affect the referer since local hosts are ignored.
Forgetting or manually setting the referer
The Referer
class provides dedicated methods to forget, or manually set the referer.
Changing the way the referer is determined
The referer is determined by doing checks on various sources, which are defined in the configuration.
A source implements the Source
interface, and requires one method, getReferer
. If a source is able to determine a referer, other sources will be ignored. In other words, the sources
array is ordered by priority.
In the next example, we'll add a source that can use a ?ref
query parameter to determine the referer. Additionally, we'll ignore ?utm_source
parameters.
First, create the source implementations:
Then register your source in the sources
array. We'll also disable the utm_source
while we're at it.
That's it! Source implementations can be this simple, or more advanced if necessary.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
Contributing
Please see CONTRIBUTING for details.
Security
If you've found a bug regarding security please mail [email protected] instead of using the issue tracker.
Credits
- Sebastian De Deyne
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-referer with dependencies
illuminate/contracts Version ^8.73|^9.0|^10.0|^11.0
illuminate/http Version ^8.73|^9.0|^10.0|^11.0
illuminate/support Version ^8.73|^9.0|^10.0|^11.0