Structure et configuration de StringBladeCompiler

Structure du projet

StringBladeCompiler s’organise autour de trois grandes zones : le code source, la configuration et les tests. Le schéma ci-dessous présente l’arborescence complète.

StringBladeCompiler/
├── src/
│   ├── Compiler/
│   │   └── StringBladeCompiler.php
│   ├── Facades/
│   │   └── StringBlade.php
│   └── StringBladeServiceProvider.php
├── config/
│   └── stringblade.php
├── tests/
│   └── StringBladeCompilerTest.php
├── composer.json
├── .gitignore
├── LICENSE
└── README.md

  • src/ : contient le cœur du package. Compiler/StringBladeCompiler.php réalise la compilation des chaînes au format Blade, Facades/StringBlade.php fournit une façade Laravel et StringBladeServiceProvider.php est le service provider.
  • config/ : héberge le fichier d’options stringblade.php.
  • tests/ : regroupe les tests unitaires, principalement dans StringBladeCompilerTest.php.
  • composer.json : décrit les dépendances et l’autoloading PSR.
  • .gitignore, LICENSE et README.md : fichiers usuels d’exclusion Git, de licence et de documentation.

Service provider d’initialisation

Le point d’entrée du package est le service provider. Il publie la configuraton et enregistre le compilateur comme singleton dans le conteneur d’application.

<?php

namespace TerrePorter\StringBladeCompiler;

use Illuminate\Support\ServiceProvider;

class StringBladeServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $source = __DIR__ . '/../config/stringblade.php';
        $destination = config_path('stringblade.php');

        $this->publishes([
            $source => $destination,
        ]);
    }

    public function register()
    {
        $this->app->singleton('stringblade', function ($container) {
            return new StringBladeCompiler(
                $container['files'],
                $container['config']['view.compiled']
            );
        });
    }
}

  • boot() : met à disposition le fichier de configuration dans l’application Laravel.
  • register() : crée l’instance unique du compilateur en lui fournisant le gestionnaire de fichiers et le chemin des vues compilées.

Fichier de configuraton

Les options du compilateur se concentrent dans config/stringblade.php.

<?php

return [
    'traceMarker' => 'IndexController: construction de la vue',
    'purgeCacheAfterRender' => true,
];

Étiquettes: StringBladeCompiler Laravel Blade PHP ServiceProvider

Publié le 18 octobre à 10h13