[Laravel] 3rd party implementatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00
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.

---

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? :o