Page 1 sur 1

Monades : Décorateur

Posté : 14 juin 2022, 14:02
par Dsynx
<?php
class Recipient
{

    protected $valeurs;

    public function __construct($valeur)
    {
        $this->valeurs = $valeur;
    }

    public static function de($valuer)
    {
        return new static($valuer);
    }

    public function appliquer($balise)
    {
        return static::de(call_user_func([$this, 'tag'], [$balise,$this->valeurs]));
    }

    public function recuperation()
    {
        return $this->valeurs;
    }


    private function tag($exploitation){
        list($tag_exploitable,$valeur_exploitable) = $exploitation;
        return "<$tag_exploitable>$valeur_exploitable</$tag_exploitable>";
    }

}

$contenu_sorti = Recipient::de("  la réponse est Non   ")
    ->appliquer("h1")
    ->appliquer("body")
    ->appliquer("html")
    ->recuperation(); // <- va renvoyer ce qui est produit dans $contenu_sort

echo($contenu_sorti);
Affiche :

Code : Tout sélectionner

<html><body><h1> la réponse est Non </h1></body></html>

voila je pense qu'il n'y a pas vraiment de commentaire à faire et d'explication
vous avez tout le code pour comprendre son utilisation moi je vous conseil donc de le tester sur :
https://onlinephp.io/

cela vous permettra de produire du code sans vous taper des balises et de faire de containérisé du contenu.

si vous cherchez des explications et un cours sur les Monades voici le site qui m'a convaincu :
http://mcamuzat.github.io/blog/2015/11/ ... sible-dot/

vous y trouverez plus d'exploitation des monades.

Re: Monades : Décorateur

Posté : 15 juin 2022, 10:47
par Dsynx
voici la version pdf au cas ou le site disparait : https://drive.google.com/file/d/1cTHoqz ... sp=sharing