0

ユーザー登録後に送信される確認メールがあります。今、私は管理者がこのメールをカスタマイズし、内容を変更できるようにしたいと考えています。など(ハードコードしたくない)

しかし、ここでの問題は、生成するアクティベーション リンクにあります。メールの内容をデータベースに保存できると考えました。問題は、アクティベーション リンク、サイト名など、メールに追加しなければならない動的要素にあります。

これを行う最善の方法は何ですか。ワードプレスのように、いわゆる「ショートコード」を追加すると思います。この設計図とそれを統合する方法は?

4

1 に答える 1

3

検索と置換に基づく単純なテンプレート システムを使用して解決できます。以下に非常に基本的なものを短い例とともに含めました。それがあなたを助けることを願っています:)

class EmailTemplate
{
        private $body;

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

        public function render($context)
        {
                return preg_replace_callback('/%{(.*?)}%/', function($v) use ($context) {
                        return isset($context[$v[1]]) ? $context[$v[1]] : '';
                }, $this->body);
        }
}

$tpl = new EmailTemplate(<<<EOM
Hello %{user}%,

How are you doing. This is your link:

%{link}%

See ya!

EOM
);

echo $tpl->render(array(
        'user' => 'world',
        'link' => 'http://www.php.net/',
));
于 2012-09-03T16:22:09.483 に答える