jtgrimes / less4laravel by jtgrimes

Bringing lessphp into Laravel
3,326
19
4
Package Data
Maintainer Username: jtgrimes
Maintainer Contact: jtgrimes@gmail.com (J.T. Grimes)
Package Create Date: 2013-01-17
Package Last Update: 2015-08-02
Language: PHP
License: MIT
Last Refreshed: 2021-07-28 15:08:25
Package Statistics
Total Downloads: 3,326
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 19
Total Watchers: 4
Total Forks: 5
Total Open Issues: 0

Less4Laravel

Allows you to use Less in Laravel 5 with no fuss, no muss.


If you're still using Laravel 4, please lock your composer version to '~0.3'. Check out the README_L4.md file for more Laravel 4 instructions


License

Less4Laravel is open-sourced software licensed under the MIT license, the same license Laravel uses.

Installation

Via Composer

$ composer require jtgrimes\less4laravel

Once Composer has installed or updated your packages, you need to register Less4Laravel with Laravel itself. Open up /config/app.php and find the providers key towards the bottom and add:

'Jtgrimes\Less4laravel\LessServiceProvider'

In the aliases section, add:

'Less'	=>	'Jtgrimes\Less4laravel\LessFacade'

Configuration

In order to work with the configuration file, you're best off publishing a copy with Artisan:

$ php artisan vendor:publish

The defaults are:

  • Recompile whenever any .less file is updated.
  • Cache .less files in /storage/framework/cache
  • Store .less files in resources/assets/less
  • Store generated .css files in public/css
  • Link to /css/filename.css
  • Don't minify the generated css file

All of these defaults can be changed in /app/config/less4laravel.php.

Additionally you can (and probably should) have different configurations for development and production. Specifically, you probably don't want to be generating css files on your production server, since it will slow down your site.

In order to have different configs on your development and production servers, you'll do something like this:

Open up less4laravel.config and change

	'compile_frequency' => 'changed',

to

    'compile_frequency' => env('LESS4LARAVEL_FREQUENCY'),

You can use any environment variable name you want -- L4L_FREQ is an example.

In your local .env file, add

    'LESS4LARAVEL_FREQUENCY' => 'changed',

and in your production .env file, add

    'LESS4LARAVEL_FREQUENCY' => 'never'

Usage

In your view file, just call Less::to('file') to compile the .less file (if needed) and generate a link to the output css file.

If you're using Laravel Blade, be sure to un-escape your call to Less:

	{!! Less::to('file') !!}

To add properties to your link, just put them in an array as the second variable to the to function: Less::to('filename', ['media'=>'print']) will generate <link media="print" type="text/css" rel="stylesheet" href="http://localhost/css/filename.css">

You can also use the Less::link() function if you don't want Less4Laravel generating your html:

	<link rel="stylesheet" href="{!! Less::link('filename') !!}">

Credits

Less4Laravel doesn't exist without Leaf Corcoran's lessphp.
lessphp doesn't exist without LESS. Less4Laravel also requires Taylor Otwell's Laravel framework. The readme is largely boosted from Rob Crowe's readme for (the very awesome) TwigBridge.