1. 程式人生 > >寫一個屬於自己的模板引擎【一】

寫一個屬於自己的模板引擎【一】

參考文件《毛毛蟲教你寫一個屬於自己的模板引擎》,自己也模仿著寫一遍,原諒我比較懶,具體詳解請百度原作者作品。

stupid.class.php

<?php 
define('TPL_DIR','./templates/');
define('TPL_C_DIR','./templates_c/');
class Stupid{
	private $_tpl_vars;	//模板變數
	private $_tpl_file;	//模板檔名
	private $_parser;	//編譯物件
	private $_debugger;	//除錯物件

	public function Stupid(){
		if( !is_dir(TPL_DIR) || !is_dir(TPL_C_DIR) ){
			exit("錯誤:請正確設定模板檔案和編譯資料夾!");
		}
	}

	//assign
	public function assign($var,$value){
		if( isset($var)&&trim($var)!='' ){
			$this->_tpl_vars[$var] = $value;
		}else{
			exit("錯誤:請設定變數名!");
		}
	}

	//display
	public function display($tpl_file){
		$template_file = TPL_DIR.$tpl_file."php";
		if( !file_exists($template_file) ){
			exit("模板檔案不存在!");
		}

		$parsed_file = TPL_C_DIR.md5($tpl_file)."php";
		//編譯模板檔案
		if( !file_exists($parsed_file) || filemtime($parsed_file)<filemtime($template_file) ){
			require_once './stupid_parser.class.php';
			$this->_parser = new StupidParser();
			$this->_parser->compile($tpl_file);
		}
		include $parsed_file;
	}

	//debug()方法
	public function debug($tpl_file){
		if( include_once("stupid_debugger.class.php") ){
			$this->_debugger = new StupidDebugger($tpl_file);
			$this->_debugger->start();
		}else{
			exit("錯誤:Debugger類不存在");
		}
	}

}


相關推薦

一個屬於自己模板引擎

參考文件《毛毛蟲教你寫一個屬於自己的模板引擎》,自己也模仿著寫一遍,原諒我比較懶,具體詳解請百度原作者作品。 stupid.class.php <?php define('TPL_DIR','

一個屬於自己的PHP的MVC框架(

最近想做個PHP的個人部落格作為學習用,但是發現儘管把PHP函式用得很熟悉了,按照常規的辦法,寫一個頁面處理一個請求,僅僅一個部落格就可能有很多個頁面,而且php程式碼和html程式碼都結合的非常緊密,如果想要實現更換面板的功能,就顯得非常無力。在網上找了好多framework框架,但似乎又要開始學

一個屬於自己的PHP的MVC框架(二)

第一篇文章已經把所需的目錄搭建好了,接下來的工作就是寫一些程式碼了 用編輯器開啟public/index.php檔案,寫上下面的程式碼 <?php define(DS, DIRECTORY_SEPARATOR); define(ROOT, dirna

如何一個屬於自己的查成績app

一、準備工作 準備工具:電腦 軟體:Fiddler 4(哪個都行,只要抓包) 開啟我們學校的教務網站http://202.192.240.29/login!welcome.action   點選驗證碼框,會向伺服器傳送get請求,這是我抓到的請求內容 伺服器返回的是一個

一個簡單的模板引擎

寫一個簡單的模板引擎 ES5 開始支援模板字串(Template literals),支援如下的寫法: `string text ${expression} string text`; 其實在很多模板引擎中,常常會有這樣需求,比如常用的 doT,使用類似的語法 <div>{{=1+2}}</

設計模式 - 動態代理原理及模仿JDK Proxy 一個屬於自己的動態代理

本篇文章程式碼內容較多,講的可能會有些粗糙,大家可以選擇性閱讀。 本篇文章的目的是簡單的分析動態代理的原理及模仿JDK Proxy手寫一個動態代理以及對幾種代理做一個總結。 對於代理模式的介紹和講解,網上已經有很多優質的文章,我這裡就不會再過多的介紹了,這裡推薦幾篇優質的文章作為參考: 給女朋友講解什麼

1000行代碼徒手正則表達式引擎1--JAVA中正則表達式的使用

基礎上 unicode 要求 [1] 分配 find 通過 images char 簡介: 本文是系列博客的第一篇,主要講解和分析正則表達式規則以及JAVA中原生正則表達式引擎的使用。在後續的文章中會涉及基於NFA的正則表達式引擎內部的工作原理,並在此基礎上用1000行左右

微信開發02.搭建一個屬於自己的微信公眾平臺

tro 投票 新浪 關系 blank 訂閱 logs name 開發者 閱讀目錄 【網站開發】在新浪SAE上搭建一個博客 概述   公司年會上同事開發了一個微信企業號,包含了投票,抽獎,祝福墻功能,還開了一個Session,跟我們講了下公司的企業號開發過程和抽獎中獎

如何一個自己的框架一個優雅的Java Config模組(

Build設計模式 配置模組化 用build設計模式將配置模組化。 配置的依賴關係管理 主從模式 可以暫時先看下面的主從從模式。 單屬性配置 httpSecurity.authorizeRequests().regexMatch

實驗一個hello world小程式實驗樓系列shiyanlou.com

1、 實驗思路和具體過程簡述: 利用~/ $ cd開啟實驗目錄 利用mkdir命令建立實驗資料夾 使用vim建立hello.c 在GCC中編譯hello.c檔案 執行編譯後的可執行檔案 上傳程式

MVC學習筆記() 建立一個屬於自己的MVC專案

學習MVC兩個來月了,終於決定最個能讓自己滿意的MVC.於是,在cnblog的洞庭夕照大大的MVC5網站開發實踐的幫助下,開始了MVC之路 再次感謝洞庭夕照大大,框架就直接按洞庭夕照大大的來了.. 專案名字就叫FantasyCMS好了.取自FINAL FANTASY遊戲

Linux系統安裝,教你安裝一個屬於自己的Linux系統——(

一、Linux的簡介         1.Linux抽象解釋                  肯定有人和我一樣,很早就聽說過Linux的這個詞,但是又沒接觸過。然後隨手百度一下看著滿滿的命令驚呆了,不知道從哪裡開始學習。這種狀況一直維持到我面試的時候,我不怕跟你們說,我

屬於自己的筆記本vue+gin+elementUI前後端分離開發部署開源專案

前言 我為什麼要寫一個個人的雲筆記? (⊙o⊙)…額額額

第一次使用Android Studio時你應該知道的一切配置(二):新建一個屬於自己的工程並安裝Genymotion模擬器

人性 pro net 參考 json irb 一個地方 vid 調試 【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p/439

如何擁有一個屬於自己的網站

網站 需要 article .com 不知道 *** 轉載 大型 滿足 前言 網站顧名思義就是網上的一個站點 而你打開的頁面就是一個站點上的一個一個文件。那就有人問了,我有一臺可以上網的計算機可不可以當站點用呢?答案是肯定的 通俗點來講就跟你平時串門一樣 這家門開著你就可

企業為什麽要做一個屬於自己的營銷網站?

itl 方式 營銷推廣 理由 沒有 適用於 才會 欲望 項目 做網站優化是不區分行業的,也就是說SEO適用於所有行業。有人認為隔行如隔山,這句話沒錯,但吖七認為,SEO不只是一種技術而應該是一種思維,換句話講做SEO是做營銷,而營銷思維主導著一家企業的生死。服務行業seo策

直播源碼如何搭建一個屬於自己的直播平臺?

直播源碼 直播系統 直播軟件 現在直播非常火爆,可以從PC或手機直播,然後從PC或是手機或是 支持HTML5的瀏覽器 收看。但是,你知道直播平臺後面的技術和實現原理碼?正好去年過年的時候,一個朋友破解了AirPlay和Chromecast協議,然後開發了一套技術能夠截獲和播放任何手機(iOS或是A

Asp.net MVC 搭建屬於自己的框架(

C4D pagedlist del tran 6.0 ext 才有 應該 frame 網址:https://www.cnblogs.com/sggx/p/4555255.html 為什麽要自己搭框架?   大家夥別急,讓我慢慢地告訴你!大家有沒有這種感覺,從一家跳槽到另一家

小白如何花費幾十元搭建一個屬於自己的網站!

摘要: 1.域名在騰訊雲、阿里雲等購買一個域名,學生只需十塊左右;2.虛擬主機選擇一個合適自己的虛擬主機,以騰訊云為例,基礎版只要19.6rmb/月;3.網站備案備案步驟如下;4.域名解析解析後可通過網路訪問你的網站,直接購 ...    

簡單MVP+RxJava2+Retrofit2 搭建一個屬於自己的開發框架

一:序言 2016年安卓熱門詞彙MVP,RxJava,Retrofit。時隔一年這些框架依然是很常用的,現在來把這幾個關鍵詞整合起來,搭建一個快速開發框架。。。 二: MVP是什麼? 對於一些剛學安卓的朋友們應該還不是太熟悉,我們先來溫習一下吧!   這