/laravel-asset-version

The Laravel Assets Versioning Package

Primary LanguagePHPMIT LicenseMIT

The Laravel 5 Assets Versioning Package

This package performs versioning of the asset URL resources.

Asset link before versioning:

https://website.domain/path/to/asset.css

Asset link after versioning:

https://website.domain/path/to/asset.css?v=0.0.1

Requirements

PHP >= 7.0, Laravel >= 5.0.

Installation

Package Installation

Execute the following command to get the latest version of the package:

composer require tooleks/laravel-asset-version

App Configuration

Service Registration

To register the service simply add Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider::class into your config/app.php to the end of the providers array:

'providers' => [
    ...
    Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider::class,
],

If you prefer to use the service via facade interface add 'Asset' => Tooleks\LaravelAssetVersion\Facades\Asset::class into your config/app.php to the end of the aliases array:

'aliases' => [
    ...
    'Asset' => Tooleks\LaravelAssetVersion\Facades\Asset::class,
],

Publishing File Resources

Run following command in the terminal to publish the package file resources:

php artisan vendor:publish --provider="Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider" --tag="config"

Configure Assets Version

Configure assets version number in the config/assets.php:

...
'version' => '0.0.1',
...

Basic Usage Examples

Via Service Object

use Tooleks\LaravelAssetVersion\Contracts\AssetServiceContract;

$assetUrl = app(AssetServiceContract::class)->get('path/to/asset.css'); // 'http://website.domain/path/to/asset.css?v=0.0.1'

$secureAssetUrl = app(AssetServiceContract::class)->get('path/to/asset.css', true); // 'https://website.domain/path/to/asset.css?v=0.0.1'

Note: Secure option will be detected automatically if no second argument will be passed into the function and secure option configured to null in the config/assets.php:

...
'secure' => null,
...

Via Service Facade Class

use Tooleks\LaravelAssetVersion\Facades\Asset;

$assetUrl = Asset::get('path/to/asset.css'); // 'http://website.domain/path/to/asset.css?v=0.0.1'

$secureAssetUrl = Asset::get('path/to/asset.css', true); // 'https://website.domain/path/to/asset.css?v=0.0.1'

Note: Secure option will be detected automatically if no second argument will be passed into the function and secure option configured to null in the config/assets.php:

...
'secure' => null,
...

In The Layout (Blade Template)

<link href="{{ Asset::get('path/to/asset.css') }}" rel="stylesheet" type="text/css">

In The Layout (PHP Template)

<link href="<?= Asset::get('path/to/asset.css') ?>" rel="stylesheet" type="text/css">