程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> InitPHP框架搭建高可用WEB應用03:模板View使用

InitPHP框架搭建高可用WEB應用03:模板View使用

編輯:關於PHP編程

 

模板基本使用

1. 模板配置

我們繼續之前幾篇文章的代碼設計。這一節主要講如何來使用InitPHP框架的模板。

先看一下配置,配置文件從initphp/initphp.conf.php中的模板配置拷貝到conf/comm.conf.php文件中。模板的配置看如下:

/*********************************View配置*****************************************/
/**
 * 模板配置
 * 1. 可以自定義模板的文件夾,編譯模板路徑,模板文件後綴名稱,編譯模板後綴名稱
 * 是否編譯,模板的驅動和模板的主題
 * 2. 一般情況下,默認配置是最優的配置方案,你可以不選擇修改模板文件參數
 */
$InitPHP_conf['template']['template_path']      = 'web/template'; //模板路徑
$InitPHP_conf['template']['template_c_path']    = 'data/template_c'; //模板編譯路徑 
$InitPHP_conf['template']['template_type']      = 'htm'; //模板文件類型  
$InitPHP_conf['template']['template_c_type']    = 'tpl.php';//模板編譯文件類型 
$InitPHP_conf['template']['template_tag_left']  = '';//模板右標簽
$InitPHP_conf['template']['is_compile']         = true;//模板每次編譯-系統上線後可以關閉此功能
$InitPHP_conf['template']['driver']             = 'simple'; //不同的模板驅動編譯
$InitPHP_conf['template']['theme']              = ''; //模板主題

配置文件中已經有了詳細的注釋,這邊要注意一下幾個配置細節:

is_compile參數。一般情況下,模板都會寫在template_path文件夾下,然後會生成新的編譯文件到template_c_path文件夾下。在調試環境下打開這個參數,上線之後請關閉這個參數,這樣每次請求都不會生成新的文件。

driver 參數。這個參數是模板驅動,默認有兩種,第一種是default 第二種是simple,默認是simple

 

2. 使用模板

在web/目錄下創建 template文件夾,主要用來存放模板,模板後綴名.htm

\

在app/目錄下創建data/template_c文件夾,data文件夾主要用來存放生成的模板文件,這個文件需要有可寫777權限。

\

在template下面創建一個hello.htm的模板文件

\

然後在indexController中調用模板

;
	}
	
	public function after() {
		echo after
;
	}
	
	/**
	 * 入口
	 */
	public function run() {
		$this->view->display(hello); //調用hello.htm模板,後綴名.htm不需要填寫
	}
	
	/**
	 * get方法
	 */
	public function get() {
		echo THIS IS GET
;
	}
}

浏覽器中訪問http://127.0.0.1/test/www.initphp.com/ 後可以看到模板調用過,並且模板編譯文件夾下多了一個新的文件hello.tpl.php

\

 

3. View API使用

View Api 一共只有5個API接口。接口文檔:http://www.initphp.com/6_4.htm

模板API使用:

		//模板會按照順序設置,但是set_tpl函數中的第二個參數F和L分別讓模板最先和最後顯示
		$this->view->set_tpl('test'); //設置一個template/test.htm的模板頁面
		$this->view->set_tpl('user/userinfo'); //設置template/user/userinfo.htm
		$this->view->set_tpl('header', 'F'); //設置為頭部,最先顯示
		$this->view->set_tpl('footer', 'L'); //最後顯示
		$this->view->remove_tpl('test'); //可以移除上面已經設置的test.htm模板
		$this->view->get_tpl(); //可以得到已經設置的模板數組
		$this->view->display(); //模板顯示

4. default的模板標簽

default模板標簽其實就是最原始的PHP使用方法,簡單暴力好用。

/* 以下是default的模板標簽使用方法(具體使用和PHP中一樣):*/
/* 配置文件修改:*/
$InitPHP_conf['template']['driver']             = 'default';

/* 一個簡單的模板*/
 //這個輸出一個變量


 

5. simple模板標簽

/* 以下是simple的模板標簽使用方法:*/

/* 配置文件修改: */
$InitPHP_conf['template']['driver']             = 'simple';

/* 標簽使用方法: */

/* 普通使用方法:*/


/* if語句使用:*/



 

/* foreach語句使用:*/



/* for語句使用:*/

 

/* 輸出變量:*/


/* 輸出常量:*/


 

 

 

模板高級使用

1. 自定義標簽

自定義的模板標簽放置在: initphp/core/view/driver/文件夾下,該文件夾下已經有 default.init.php 和 simple.init.php,分別為default和simple兩個模板標簽驅動。文件的名稱為:標簽驅動名稱+'.init.php',例如:simple.init.php類名稱為:標簽驅動名稱+'Init',例如:simpleInit需要定義一個init($str, $left, $right)的公有函數,$str是需要替換的HTML代碼,$left是模板標簽的左標記(默認:'')需要使用自定義模板標簽的時候,別忘記修改配置文件中的:$InitPHP_conf['template']['driver']

具體參看下面的simple模板標簽驅動:

 

if (!defined('IS_INITPHP')) exit('Access Denied!');
/*********************************************************************************
 * InitPHP 2.1 國產PHP開發框架  View-simple 簡單模板驅動規則模型
 *-------------------------------------------------------------------------------
 * 版權所有: CopyRight By initphp.com
 * 您可以自由使用該源碼,但是在使用過程中,請保留作者信息。尊重他人勞動成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $Author:zhuli
 * $Dtime:2011-10-09 
***********************************************************************************/
class simpleInit {

	/**
	 * 模板驅動-簡單的驅動
	 * @param  string $str 模板文件數據
	 * @return string
	 */
	 public function init($str, $left, $right) {
	 	//if操作
	 	$str = preg_replace( /.$left.ifs+(.+?).$right./, , $str );
		$str = preg_replace( /.$left.else.$right./, , $str );
		$str = preg_replace( /.$left.elseifs+(.+?).$right./, , $str );
		//for操作
		$str = preg_replace(/.$left.fors+(.+?).$right./,,$str);
		$str = preg_replace(/.$left./for.$right./,,$str);
		//foreach操作
		$str = preg_replace(/.$left.foreachs+(.+?).$right./,,$str);
		$str = preg_replace(/.$left./foreach.$right./,,$str);
		//輸出變量
		$str = preg_replace( /.$left.(\$[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*).$right./, , $str );
		//常量輸出
		$str = preg_replace( /.$left.([A-Z_-ÿ][A-Z0-9_-ÿ]*).$right./s, , $str );
		//標簽解析
		$str = preg_replace ( /.$left./if.$right./, , $str );
	 	$pattern = array('/'.$left.'/', '/'.$right.'/');
		$replacement = array('');
		return preg_replace($pattern, $replacement, $str);
	 }
}

 

2. layout布局

 

模板HTML頁面中使用Layout:。規則:左標簽+'layout:'+'模板名稱(不需要帶.htm,有目錄則user/version,和set_tpl()一樣使用)'+右標簽Layout是為了解決用戶在HTML頁面中來實現模板布局,html中使用了,則會顯示version.htm靜態頁面

 

/* 模板布局,在所有模板引擎中該方法都通用 */
/* 模板布局主要是為了解決模板切割成多個小模板,模板中能直接調用使用*/
/* 標簽使用:layout:模板名稱(不需要帶模板名稱後綴,例如user.htm模板,則直接user。如果模板有多個文件夾,則test/user 代表test/user.htm模板)*/
 

 

 

 

3. 模板主題

 

一般情況下,一個網站會有多個模板主題,InitPHP提供了簡單的模板主題配置方法用戶只需要配置$InitPHP_conf['template']['theme']這個變量,如果是red的主題,則值為'red'模板主題都是放在模板默認的目錄下面的,例如'red'主題,則模板文件夾目錄為: template/red/文件夾下實際上只是在模板默認的文件目錄下再添加了一層目錄,這樣可以方便多主題的應用

 

 

 

 

4. 編譯機制


InitPHP的模板機制都會將HTML頁面編譯成.php文件,默認為(template_c/編譯文件夾和.tpl.php後綴名稱)$InitPHP_conf['template']['is_compile']是否開啟編譯機制,建議開發的時候開啟,開發完成上線後,關閉該參數

 


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved