Aller au contenu

Installation

phil/css-sanitizer

Prérequis

PrérequisPourquoi
PHP 8.5 ou plus récentClasses en lecture seule, constantes typées, clone() avec propriétés, array_all()
ext-mbstringLa source rendue en UTF-8 valide, les échappements transformés en caractères, les sujets des retraits coupés
symfony/validator 8.2 ou plus récent, facultatifLa contrainte SafeCss

Installer

composer require phil/css-sanitizer

C'est une bibliothèque, pas un bundle : il n'y a rien à enregistrer. Construisez un CssSanitizer avec la politique de l'application, une seule fois, et gardez-le. Il ne garde aucun état entre deux appels.

use Phil\CssSanitizer\CssSanitizer;
use Phil\CssSanitizer\Policy;

$sanitizer = new CssSanitizer();                                     // the default policy, every URL refused
$print = new CssSanitizer(new Policy()->withProperties('position'));  // a policy of its own

Dans une application Symfony, déclarez la politique et l'assainisseur comme services, avec le validateur, pour que la contrainte SafeCss utilise la même politique :

services:
    app.css_policy:
        class: Phil\CssSanitizer\Policy
        factory: ['@App\Css\PolicyFactory', 'create']

    Phil\CssSanitizer\CssSanitizer:
        arguments: ['@app.css_policy']

    Phil\CssSanitizer\Validator\SafeCssValidator:
        arguments: ['@Phil\CssSanitizer\CssSanitizer']
        tags: ['validator.constraint_validator']

Sans cette déclaration, le validateur est construit par la fabrique du composant Validator, avec la politique par défaut.