Monades : Décorateur

Avatar du membre
Eléphanteau du PHP | 41 Messages

14 juin 2022, 14:02

<?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.

Avatar du membre
Eléphanteau du PHP | 41 Messages

15 juin 2022, 10:47

voici la version pdf au cas ou le site disparait : https://drive.google.com/file/d/1cTHoqz ... sp=sharing