matthewbdaly / laravel-dynamic-serving
Dynamic serving middleware for Laravel
Requires (Dev)
- matthewbdaly/artisan-standalone: 0.0.*
- mockery/mockery: ~1.0
- orchestra/testbench: 3.5
- orchestra/testbench-browser-kit: ~3.5
- phpunit/phpunit: ^6.3
- psy/psysh: 0.8.*
- satooshi/php-coveralls: ^1.0
- sebastian/phpcpd: ^3.0
- squizlabs/php_codesniffer: ^3.1
This package is auto-updated.
Last update: 2024-10-28 06:49:41 UTC
README
Middleware for detecting mobile/tablet users and adding data to the session so that other parts of the application can dynamically serve different content as required, in order to implement dynamic serving.
How do I install it?
$ composer require matthewbdaly/laravel-dynamic-serving
What does it do?
The package provides the middleware Matthewbdaly\LaravelDynamicServing\Http\Middleware\DetectMobile
, which you can set globally, or use on just a subset of your routes as appropriate. It sets a key of mobile
in your session when a user first navigates to a page behind this middleware, which you can then use to determine which views to show a user, based on whether this returns a value of true
or false
. In addition, it sets the Vary
header to User-Agent
in the response, which tells search engines and caching systems that the response will vary by user agent. If you want to be able to let the user override the default based on the user agent (which is a good idea), all you need to do is provide a means to toggle the mobile
flag in the session - typically you'll want to do this via AJAX and reload the page afterwards.
It also provides the is_mobile()
and is_desktop()
helper functions. While you can use these to determine which view to load, it's likely to be more useful in views in order to determine whether or not to show a particular part of the view.