tooleks/laravel-asset-version

The Laravel Assets Versioning Package

1.0.2 2016-10-28 13:33 UTC

This package is not auto-updated.

Last update: 2024-12-17 22:52:48 UTC


README

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">