Is using a Template class the most efficient way to handle email templates with dynamic data in PHP?

When handling email templates with dynamic data in PHP, using a Template class can be an efficient way to separate the template from the data. This allows for easier maintenance and reusability of templates. By using a Template class, you can easily inject dynamic data into the template without cluttering your code with HTML markup.

class Template {
    private $template;

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

    public function render($data) {
        foreach ($data as $key => $value) {
            $this->template = str_replace("{{" . $key . "}}", $value, $this->template);
        }
        return $this->template;
    }
}

// Example usage
$emailTemplate = new Template("<p>Hello {{name}},</p><p>Your account balance is {{balance}}.</p>");
$data = ['name' => 'John Doe', 'balance' => '$100'];
echo $emailTemplate->render($data);