StrReplaceByVariables.php 759 Bytes
<?php

namespace App\Service;

class StrReplaceByVariables
{

    private $delimer = '%';
    private $str;
    private $variables;

    /**
     * @param string $str
     * @param array $variables
     */
    public function __construct($str, $variables)
    {
        foreach ($variables as $key => $variable) {
            $variables["{$this->delimer}{$key}{$this->delimer}"] = $variable;
            unset($variables[$key]);
        }

        $this->str = $str;
        $this->variables = $variables;
    }

    static public function getInstance($str, $variables)
    {
        return new static($str, $variables);
    }

    /**
     * @return string
     */
    public function get()
    {
        return strtr($this->str, $this->variables);
    }

}