googleshokry/laravel-page-speed

dev-master 2018-10-29 04:48 UTC

This package is auto-updated.

Last update: 2024-09-29 05:21:23 UTC


README

Project on GitScrum Laravel 5.3 Laravel 5.4 Laravel 5.5 Build Status License Latest Stable Version Total Downloads

Simple package to minify HTML output on demand which results in a 35%+ optimization.

Installation is easy

You can install the package via composer:

$ composer require googleshokry/laravel-page-speed

Laravel 5.5 and up

You don't have to do anything else, this package uses the Package Auto-Discovery feature, and should be available as soon as you install it via Composer.

Laravel 5.4 or 5.3

Add the Service Provider to your config/app.php: GoogleShokry\LaravelPageSpeed\ServiceProvider::class

This is required for publishing the configuration file:

Publish configuration file

php artisan vendor:publish --provider="GoogleShokry\LaravelPageSpeed\ServiceProvider"

Register Middlewares

Next, the \GoogleShokry\LaravelPageSpeed\Middleware\CollapseWhitespace::class and other middleware must be registered in the kernel:

//app/Http/Kernel.php

protected $middleware = [
    ...
    \GoogleShokry\LaravelPageSpeed\Middleware\InlineCss::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\ElideAttributes::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\RemoveComments::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\TrimUrls::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\RemoveQuotes::class,
    \GoogleShokry\LaravelPageSpeed\Middleware\CollapseWhitespace::class,
]

Before

Before of Laravel Page Speed

After

After of Laravel Page Speed

Roadmap : Filters

Configuration

After installing package, you may need to configure some options.

Disable Service

You would probably like to set up the local environment to get a readable output.

//config/laravel-page-speed.php

//Set this field to false to disable the laravel page speed service.
'enable' => env('LARAVEL_PAGE_SPEED_ENABLE', true),

Skip routes

You would probably like to configure the package to skip some routes.

//config/laravel-page-speed.php

//You can use * as wildcard.
'skip' => [
    '*.pdf', //Ignore all routes with final .pdf
    '*/downloads/*',//Ignore all routes that contain 'downloads'
    'assets/*', // Ignore all routes with the 'assets' prefix
];

By default this field comes configured with some options, so feel free to configure according to your needs...

Notice: This package skip automatically binary response. See File Downloads.

Testing

$ composer test

Contributing

Please see CONTRIBUTING for details.

Credits

Inspiration

Mod Page Speed (https://www.modpagespeed.com/)

License

The MIT License (MIT). Please see License File for more information.