ホームページ  >  記事  >  バックエンド開発  >  シンプルなテンプレート クラス - コンパイル済み (シンプレット クラスの拡張後)_PHP チュートリアル

シンプルなテンプレート クラス - コンパイル済み (シンプレット クラスの拡張後)_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:35:34934ブラウズ

前回リリースしたシンプレットクラス(http://bbs.phpchina.com/thread-85257-1-1.html)の後、多次元配列をサポートしていないなど多くの欠陥があることが判明しました。キャッシュ機能はありませんでしたが、今回はこれらの機能をすべて追加しました。 ! !
ご興味があれば、次回、このクラスを作成するための私のアイデアと方法について説明するチュートリアルを公開します。 ! !応援していただける方はフォローして応援していただけます!
PHP代码:
simplet.class.php
class SimpleT {
private $t_vars;
private $templates_dir;
private $templates_c_dir;
private $cache;
private $cache_dir;

パブリック関数 __construct( ) {
$this->templates_dir = ./templates/;
$this->templates_c_dir = ./templates_c/;
$this->cache = 0;
$this->cache_dir = 。 /キャッシュ/ ; )./;
elseif($type == template_c)
$this->templates_c_dir = rtrim($dir, /)./;
elseif($type == キャッシュ)
$ this->cache_dir = rtrim( $dir, /)./;
else
return false;
return true;
} else {
return false;
}
}

パブリック関数キャッシュ($time) {
if(is_numeric($time)) {
$this->cache = $time;
return true;
} else {
return false;
}
}

public function assign($var , $value = NULL) {
if (is_array($var) ) {
foreach ($var as $key => $val) {
$this->t_vars[$key] = $val;
}
} else {
$this->t_vars[$var] = $value;
}
}
プライベート関数 comp($ filename) {
try {
if(!$fp = fopen($filename, r)) {
throw new Exception(Can not open . $filename);
}
$filesize = ファイルサイズ($filename);
if( $filesize throw new Exception(ファイルサイズは > 0 である必要があります);
}
$content = fread($fp, $filesize);
fclose($fp);
設定解除($fp) ;

$content = preg_replace("/ $content = preg_replace("/ $content = preg_replace("/ $content = preg_replace("/", $content);
$content = preg_replace("//", "< ;?php echo $$1_key ;?>", $content);
$content = preg_replace("// ", "", $content);
$content = preg_replace("/ $content = preg_replace("/<%##common##%>([^<%##end##%>]{0,}) <%##end##%>/", "", $content);
if (preg_match_all("/<%{([^(}%>>)]{1,})}%>/", $content, $files)) {
$this->comp($this->templates_dir . $files[1][0]);
}
$content = preg_replace("/<%{([^(}%>)]{ 1,})}%>/", "templates_c_dir}simplet_comp_$1.php; ?>", $content);
echo $content;
$fp = fopen( $this->templates_c_dir .simplet_comp_ .basename($filename) .php, w);
if(!fwrite($fp, $content)) {
. $filename にコンテンツを書き込めません;
&

www.bkjia.com本当http://www.bkjia.com/PHPjc/508319.html技術記事上次発行の simplet 类の後 (http://bbs.phpchina.com/thread-85257-1-1.html)、発行有很多缺陷、例: 不支持多维数组、注释和不存在缓存機能、今度我握って…

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。