PHP 用の (非常に) 基本的なテンプレート エンジンを作成しようとしています。私の調査に基づいて、私が使用している方法が非常に嫌われていることがわかりました. 同じ結果を得るための優れた代替手段を誰かが知っているかどうか疑問に思っていたので、私はそれを使用していません。そして、他の改善点があれば、共有してください!
アドバイスされていない方法はeval()
方法です!
ここにphpファイルがあります
<?php
class Engine {
private $vars = array();
public function assign($key, $value) {
$this->vars[$key] = $value;
}
public function render($file_name) {
$path = $file_name . '.html';
if (file_exists($path)) {
$content = file_get_contents($path);
foreach ($this->vars as $key => $value) {
$content = preg_replace('/\{' . $key . '\}/', $value, $content);
}
eval(' ?>' . $content . '<?php ');
} else {
exit('<h4>Engine Error</h4>');
}
}
}
?>
ここにindex.phpファイルがあります
<?php
include_once 'engine.php';
$engine = new Engine;
$engine->assign('username', 'Zach');
$engine->assign('age', 21);
$engine->render('test');
?>
これは、基本的な機能を表示するためのテスト用の html ファイルです。
My name is {username} and I am {age} years old!
出力:
My name is Zach and I am 21 years old!
よろしくお願いします!