2018-02-01 13:11:39 1321瀏覽
我們做PHP開(kāi)發(fā)會(huì)經(jīng)常用到thinkphp,thinkphp是PHP一個(gè)非常常用的框架,但是目前有許多剛參加PHP培訓(xùn)或者是對(duì)PHP開(kāi)發(fā)感興趣的小伙伴對(duì)thinkphp開(kāi)發(fā)不是很了解,本篇文章扣丁學(xué)堂小編就thinkphp開(kāi)發(fā)技巧簡(jiǎn)單的給大家分享一下。
扣丁學(xué)堂PHP培訓(xùn)之thinkphp開(kāi)發(fā)技巧:
(1)不要在模板中直接使用{$_GET.id}或者{$Think.get.id},因?yàn)?span>{$_GET.id} {$Think.get.id} 這兩種方式都沒(méi)有任何過(guò)濾,容易被XSS。建議使用I方法,即:{:I('get.id')}
(2)在thinkphp中如果需要獲取數(shù)據(jù)庫(kù)中某個(gè)表的字段該怎么辦呢?示例如下:
查看代碼打印
$user=M('user');
$fields=$user->getDbFields();
結(jié)果將返回一個(gè)由表字段組成的一個(gè)一維數(shù)組。
(3)數(shù)據(jù)修改的過(guò)程中如果我們只需要修改某個(gè)字段的值,就可以使用setField方法,而不需要每次都調(diào)用save方法,例如:
查看代碼打印
$user=M('user');
$user->where('id=2')->setField('username','www.phpernote.com');
(4)涉及到比較的情況下不一定非得使用if condition這種形式的,還可以按如下的形式來(lái)寫(xiě):
查看代碼打印
value // name 變量的值等于 phpernote 就輸出
value // name 變量的值不等于 phpernote 就輸出
value // name 變量的值大于 5 就輸出
value // name 變量的值大于等于 5 就輸出
value // name 變量的值小于 5 就輸出
value // name 變量的值小于等于 5 就輸出
(5)在thinkphp的刪除操作中可以不使用where直接使用delete來(lái)執(zhí)行刪除,例如:
查看代碼打印
$User->delete('2,5');//刪除主鍵為2和5的數(shù)據(jù)
(6)關(guān)于thinkphp的幾個(gè)快速操作的函數(shù)的用法說(shuō)明。
C操作,操作(動(dòng)態(tài))配置: 主要用于Action方法里面
獲取:C('配置參數(shù)')
設(shè)置:C('配置參數(shù) ',新值)
A操作,快速創(chuàng)建Action對(duì)象:
$action=A('User'); 等效于 $action=new UserAction();
D操作,快速創(chuàng)建模型數(shù)據(jù)對(duì)象:
$model=D('User'); 等效于 $model=new UserModel();
S操作,快速操作緩存方法
獲取:S('name')
設(shè)置:S('name','value');
刪除:S('name',NULL);
F操作,快速文件數(shù)據(jù)保存方法,使用方法與S操作一樣。
(7)Model命名時(shí),默認(rèn)要和數(shù)據(jù)庫(kù)里的表名一致,如PhpernoteUserModel.class.php對(duì)應(yīng)數(shù)據(jù)庫(kù)的名稱(chēng)應(yīng)該是 '前綴_phpernote_user',在程序代碼中的調(diào)用應(yīng)該是:D('PhpernoteUser');
(8)開(kāi)發(fā)的過(guò)程中如不需要進(jìn)行緩存,可以在入口文件中進(jìn)行如下定義:
查看代碼打印
define('NO_CACHE_RUNTIME',true);
(9)在開(kāi)發(fā)的過(guò)程中如果需要知道一些額外的信息,可在配置文件中進(jìn)行相應(yīng)的定義,下面給出幾個(gè)比較常見(jiàn)的信息定義方式:
查看代碼打印
'SHOW_RUN_TIME'=>true,//運(yùn)行時(shí)間顯示
'SHOW_ADV_TIME'=>true,//顯示詳細(xì)的運(yùn)行時(shí)間
'SHOW_DB_TIMES'=>true,//顯示數(shù)據(jù)庫(kù)的操作次數(shù)
'SHOW_CACHE_TIMES'=>true,//顯示緩存操作次數(shù)
'SHOW_USE_MEM'=>true,//顯示內(nèi)存開(kāi)銷(xiāo)
(10)自定義Model類(lèi)并在實(shí)例化模型(模型就是數(shù)據(jù)庫(kù)操作類(lèi))時(shí)使用,舉例如下:
a、在工程目錄下的Lib目錄下的Model目錄下建立一個(gè)IndexModel.class.php,然后里面寫(xiě)一個(gè)方法play,此方法內(nèi)容體為循環(huán)輸出1至10。
b、那么在Action中的方法里,還可以這么寫(xiě):
查看代碼打印
$index=M('index','IndexModel');//這里可以加上自定義的模型類(lèi)一起實(shí)例化
$index->play();
那么會(huì)輸出1至10。
(11)使用thinkphp的過(guò)程中如果需要更改默認(rèn)的模板后綴名,可以在配置文件中做如下定義:
查看代碼打印
'TMPL_TEMPLATE_SUFFIX' => '.dwt'//這里就將模板后綴名改為了dwt
學(xué)習(xí)是一個(gè)長(zhǎng)期的事情,想要成為專(zhuān)業(yè)的PHP開(kāi)發(fā)工程師就需要不斷的學(xué)習(xí),從零開(kāi)始難免會(huì)遇到各種各樣的問(wèn)題。大家也不要擔(dān)心,如果沒(méi)有人可以交流,大家可以加入扣丁學(xué)堂PHP技術(shù)交流群:374332265進(jìn)行交流學(xué)習(xí)。
扣丁學(xué)堂PHP培訓(xùn)不僅有專(zhuān)業(yè)的老師和與時(shí)俱進(jìn)的課程體系,還有大量的PHP視頻教程供學(xué)員觀看學(xué)習(xí),喜歡PHP想要學(xué)習(xí)PHP的小伙伴快快行動(dòng)吧。
【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“php培訓(xùn)資訊”的相關(guān)文章>>