Hier even een voorbeeld voor gebruik van een 3rd party library. Deze LESS compiler zou ik misschien eens wilen veranderen zonder overal waar hij gebruikt wordt alles te moeten veranderen. In dit geval ben ik er met een helper function waarschijnlijk veel sneller, maar goed... even voor het idee.
---
^ Wat moet de less compiler kunnen; LESS compilen!
---
^ Als ik de less compiler aanroep, welke implementatie moet ik dan hebben.
---
^ De bewuste implementatie voor de Lessc less compiler.
---
Heb ik het gesnapt, of doe ik dit helemaal fout?
---
PHP: app/Contracts/LessCompiler.php
1
2
3
4
5
6
7
8
9
| <?php namespace App\Contracts; interface LessCompiler { public function compile($less, $variables = array()); } |
^ Wat moet de less compiler kunnen; LESS compilen!
---
PHP: app/Providers/LessCompilerServiceProvider.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class LessCompilerServiceProvider extends ServiceProvider { protected $deferred = true; public function register() { $this->app->bind('App\Contracts\LessCompiler', 'App\Services\LesscLessCompiler'); } public function provides() { return ['lesscompiler']; } } |
^ Als ik de less compiler aanroep, welke implementatie moet ik dan hebben.
---
PHP: app/Services/LesscLessCompiler.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| <?php namespace App\Services; use App\Contracts\LessCompiler; class LesscLessCompiler implements LessCompiler { public function __construct(\lessc $lessc) { $this->lessc = $lessc; } public function compile($less, $variables = array()) { if (empty($variables)) return false; $this->setVariables($variables); $this->lessc->setFormatter('compressed'); return $this->lessc->compile($less); } private function setVariables($variables) { $this->lessc->setVariables($variables); } } |
^ De bewuste implementatie voor de Lessc less compiler.
---
Heb ik het gesnapt, of doe ik dit helemaal fout?