| Package Data | |
|---|---|
| Maintainer Username: | torann |
| Maintainer Contact: | torann@gmail.com (Daniel Stainback) |
| Package Create Date: | 2015-07-25 |
| Package Last Update: | 2018-02-01 |
| Language: | PHP |
| License: | BSD-2-Clause |
| Last Refreshed: | 2025-11-09 15:03:23 |
| Package Statistics | |
|---|---|
| Total Downloads: | 6,604 |
| Monthly Downloads: | 2 |
| Daily Downloads: | 0 |
| Total Stars: | 14 |
| Total Watchers: | 2 |
| Total Forks: | 1 |
| Total Open Issues: | 0 |
Dynamically change Laravel views based on the visitor's device.
From the command line run:
composer require torann/device-view
This package extends Laravel's built in ViewServiceProvider, so that provider must be replaced in app/app.php.
Replace the instance of 'Illuminate\View\ViewServiceProvider', with 'Torann\DeviceView\DeviceViewServiceProvider',.
Run this on the command line from the root of your project:
$ php artisan vendor:publish --provider="Torann\DeviceView\DeviceViewServiceProvider"
A configuration file will be publish to config/device-view.php.
The default settings are for the device views to be in the views directory in resources/ with the default theme called default.
resources/
views/
default/
mobile/
tablet/
A standard call to View::make('index') will look for an index view in resources/views/default/. However, if a theme is specified with
$app['view.finder']->setDeviceView('mobile'); prior to calling View::make() then the view will first be looked for in resources/views/mobile/views.
If the view is not found for the current theme the default theme will then be searched.
The DeviceView facade can also be used if preferred DeviceView::setDeviceView('mobile') by adding an entry for Torann\DeviceView\Facades\DeviceView to config/app.php.
DeviceView::getPlatform()
Return the user's operating system.
Given a directory structure of:
resources/
views/
default/
layout.blade.php
admin.blade.php
mobile/
layout.blade.php
View::make('layout'); // Loads resources/views/default/layout.blade.php
$app['view.finder']->setDeviceView('default');
View::make('layout'); // Loads resources/views/mobile/layout.blade.php
View::make('admin'); // Loads resources/views/default/admin.blade.php