ThinkPHP3.2框架自定義配置和加載用法示例
本文實(shí)例講述了ThinkPHP3.2框架自定義配置和加載用法。分享給大家供大家參考,具體如下:
有時候我們會有一些規(guī)則定義每個數(shù)字對應(yīng)的實(shí)際內(nèi)容,比如說在下拉菜單的時候:
<select name="reasonAndType" id=""> <option value="1">查詢物流</option> <option value="2">辦理退貨</option> <option value="3">咨詢退貨</option> <option value="4">咨詢傭金</option> <option value="5">咨詢規(guī)則</option> <option value="0">其他</option> </select>
←實(shí)際效果
←數(shù)據(jù)庫存的效果
←顯示的時候。
這個例子里,實(shí)際顯示的是漢字,實(shí)際的value值是數(shù)字,等我們向數(shù)據(jù)庫存的時候也是存數(shù)字,等我們從數(shù)據(jù)庫獲取的時候也是取數(shù)字,顯示的時候也是顯示漢字;
所以我們需要一個類似字典的東西,它定義了那個數(shù)字對應(yīng)的漢字是什么,定義的實(shí)際意義是什么;
用數(shù)據(jù)庫能夠?qū)崿F(xiàn)這個效果,但我們不用,因?yàn)閷?shù)據(jù)庫的操作開銷太大;
如果是普通的PHP環(huán)境,我們可以把規(guī)則單獨(dú)存到一個文件里,內(nèi)容是一個數(shù)組:
type.PHP
$type = array( '1' => '查詢物流', '2' => '辦理退貨', '3' => '咨詢退貨', '4' => '咨詢傭金', '5' => '咨詢規(guī)則', '0' => '其他' );
就像上面代碼那樣,定義好之后,存成一個文件,當(dāng)我們需要調(diào)用這個這個規(guī)則的時候,就include或者require,然后直接用$type這個變量去找就行了,比如:
require_once('type.php'); echo $type[1]; //輸出'查詢物流' foreach($type as $k => $v){ //直接打印出最上面的下拉菜單代碼, echo "<option value = '{$k}' >{$v}</option>"; }
如果在ThinkPHP,要是想引入文件,只能用絕對路徑,在include和require用__APP__
或者__ROOT__
快捷入口是不行的,U()
造鏈函數(shù)我沒試,應(yīng)該是可以實(shí)現(xiàn)的。
還有一種實(shí)現(xiàn)方式,也是我在這里推薦的,就是直接把這套規(guī)則定義為這個網(wǎng)站的配置文件,當(dāng)我們用的時候,用C()
加載配置函數(shù)把這個數(shù)組加載出來賦給一個變量就好了。
上代碼了:
把你定義的規(guī)則放到conf下,這是私有配置文件,只有Home這個入口的才生效,也可以放到公共配置文件下,細(xì)節(jié)可以去查手冊。
return array( 'REASON_AND_TYPE' => array( '1' => '查詢物流', '2' => '辦理退貨', '3' => '咨詢退貨', '4' => '咨詢傭金', '5' => '咨詢規(guī)則', '0' => '其他' ) );
注意加上return;
注意,格式,return一個數(shù)組,鍵名是大寫的(為了好看),鍵值是你要定義的東西,在這里我們定義的是一個數(shù)組。
修改config.php文件
<?php return array( //'配置項(xiàng)'=>'配置值' 'DB_TYPE' => 'mysqli', // 數(shù)據(jù)庫類型 'DB_HOST' => 'localhost', // 服務(wù)器地址 'DB_NAME' => 'kefu', // 數(shù)據(jù)庫名 'DB_USER' => 'root', // 用戶名 'DB_PWD' => 'root', // 密碼 'DB_PORT' => '', // 端口 'DB_PREFIX' => '', // 數(shù)據(jù)庫表前綴 'LOAD_EXT_CONFIG' => 'reasonAndType', //這是我們自己添加的,LOAD_EXT_CONFIG鍵名固定,鍵值是你的php文件的文件名,那個數(shù)組名字在這里就不用管了 );
這就算配置好了。
下面講調(diào)用這套規(guī)則:
$reasonAndTypeX = C('REASON_AND_TYPE'); //直接用數(shù)組名字就可以了,C()函數(shù)能加載配置里的鍵名所代表的值,賦給變量
注意,C()
函數(shù)的里面的值,是reasonAndType這個文件的值。
var_dump($reasonAndTypeX);
就會輸入這個數(shù)組的內(nèi)容
array( '1' => '查詢物流', '2' => '辦理退貨', '3' => '咨詢退貨', '4' => '咨詢傭金', '5' => '咨詢規(guī)則', '0' => '其他' );
這樣就完成了自定義配置文件的設(shè)置和加載。
如果‘REASON_AND_TYPE'沒有配置,則會返回一個null值;
當(dāng)然,你也可以設(shè)置默認(rèn)值,代碼如下:
// 如果REASON_AND_TYPE尚未設(shè)置的話,則返回default_config字符串 C('my_config',null,'default_config');
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP指定截取字符串中的中英文或數(shù)字字符的實(shí)例分享
這篇文章主要介紹了PHP指定截取字符串中的中英文或數(shù)字字符的實(shí)例,還附帶介紹了過濾字符串中空格的方法,需要的朋友可以參考下2016-03-03phpStudy配置多站點(diǎn)多域名方法及遇到的403錯誤解決方法
這篇文章主要介紹了phpStudy配置多站點(diǎn)多域名方法及遇到的403錯誤解決方法,需要的朋友可以參考下2017-10-10PHP數(shù)組遍歷知識匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測速)
這篇文章主要介紹了PHP數(shù)組遍歷知識匯總,本文包含3種遍歷方法、7個數(shù)組指針操作函數(shù)、對3種數(shù)組遍歷的速度測試等內(nèi)容,需要的朋友可以參考下2014-07-07Laravel 5.5基于內(nèi)置的Auth模塊實(shí)現(xiàn)前后臺登陸詳解
最近在使用laravel5.5,利用其實(shí)現(xiàn)了一個功能,下面分享給大家,這篇文章主要給大家介紹了關(guān)于Laravel 5.5基于內(nèi)置的Auth模塊如何實(shí)現(xiàn)前后臺登陸的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12讓Laravel API永遠(yuǎn)返回JSON格式響應(yīng)的方法示例
這篇文章主要給大家介紹了關(guān)于如何讓Laravel API永遠(yuǎn)返回JSON格式響應(yīng)的相關(guān)資料,需要的朋友可以參考下2018-09-09