淺談PHP之ThinkPHP框架使用詳解
Thinkphp框架其精髓就在于實(shí)現(xiàn)了MVC思想,其中M為模板、V為視圖、C為控制器,模板一般是公共使用類(lèi),在涉及數(shù)據(jù)庫(kù)時(shí),一般會(huì)跟數(shù)據(jù)表同名,視圖會(huì)和控制器類(lèi)里的方法進(jìn)行名字的一一對(duì)應(yīng)。
下載及配置
官網(wǎng)(http://www.thinkphp.cn/)下載ThinkPHP5.0,將解壓文件放在網(wǎng)站目錄下的ATP5子目錄下
默認(rèn)主頁(yè):http://localhost:8099/ATP5/public/index.php
如果要隱藏index.php且服務(wù)器為Apache則需要將public\.htaccess下內(nèi)容替換為:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
版本要求
php版本大于等于5.4
訪(fǎng)問(wèn)規(guī)則
http://localhost:8099/ATP5/public /模塊/控制器/方法
其中http://localhost:8099/ATP5/public /
為thinkphp的公共入口,模塊的區(qū)分可以實(shí)現(xiàn)如管理員和用戶(hù)的不同入口。
命名規(guī)則
模塊名:全部小寫(xiě)
控制器名:首字母大寫(xiě)
方法名:全部小寫(xiě)
注意:
URL輸入時(shí)不區(qū)分大小寫(xiě),框架會(huì)自動(dòng)根據(jù)標(biāo)志轉(zhuǎn)換,可在config里設(shè)置(url_convert' => false)
如果控制器名為駝峰式命名(如HelloWorld)訪(fǎng)問(wèn)時(shí)地址欄應(yīng)用下劃線(xiàn)處理(如 hello_world)
新建入口App
復(fù)制一份application,然后在public/index.php中修改對(duì)應(yīng)的入口名字
建立MVC目錄
命名規(guī)則:
模板(model):首字母大寫(xiě)
視圖(view):全部小寫(xiě)
控制器(controller):首字母大寫(xiě)
顯示錯(cuò)誤信息和調(diào)試
打開(kāi)應(yīng)用的目錄里的config.php文件配置:
app_debug 值為true則顯示調(diào)試信息
show_error_msg 值為ture 則顯示錯(cuò)誤信息
CSS和JS及圖片的地址引用
在視圖目錄下想要引用到一些資源文件,如css,js,圖片等,是不支持使用把相關(guān)文件放到view目錄下的,應(yīng)該把資源文件放在public目錄下,然后在App中的config.php里的view_ replace_str下添加資源文件的目錄宏定義
// 視圖輸出字符串內(nèi)容替換 'view_replace_str' => [ '__DSTYLE__'=>"/atp/public/static/library", '__DIMG__'=>"/atp/public/img", ],
使用:
如果修改后在開(kāi)發(fā)者工具發(fā)現(xiàn)數(shù)據(jù)使用依然是上一次更改的地址,說(shuō)明有緩存在作怪,可以到 runtime\temp 目錄下清除
<img src="__DIMG__/banner7.png"> <link rel="stylesheet" href="__DSTYLE__/donglayui/layui/css/layui.css" rel="external nofollow" media="all">
簡(jiǎn)單的值匹配
視圖代碼:
<!doctype html> <h1>--{$name1}--</h1> <h2>--{$name2}--</h2>
控制器代碼:
<?php namespace app\index\controller; //導(dǎo)入必要模塊 use think\Controller; class Xiao extends Controller { public function xiao2(){ $valuex1="匹配值1"; $valuex2="匹配值2"; //匹配,變量賦值 $this->assign("name1",$valuex1); $this->assign("name2",$valuex2); //渲染輸出 //返回視圖 fetch實(shí)參為空表示找函數(shù)同名的html,實(shí)參可以傳遞其它視圖名稱(chēng) return $this->fetch(); } }
數(shù)組值的匹配
視圖中獲取
{$ff.1}
控制器
$valuex2=array("0","1","1"); $this->assign("ff",$valuex2); return $this->fetch();
Volist的使用
該方法是thinkphp中很有趣的方法,其可以實(shí)現(xiàn)在視圖文件中進(jìn)行數(shù)組的循環(huán)遍歷,最常會(huì)使用其進(jìn)行數(shù)據(jù)庫(kù)表格的遍歷顯示。
視圖中的代碼:
<table border="1"> <!--表格頭--> <thead> <tr> <th>id</th> <th>用戶(hù)名</th> <th>昵稱(chēng)</th> <th>備注</th> </tr> </thead> <!--表格內(nèi)容--> <tbody> <!--循環(huán)遍歷--> {volist name="listallh" id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.user}</td> <td>{$vo.name}</td> <td>{$vo.oo}</td> </tr> {/volist} </tbody> </table>
控制器代碼:
$listall=array(); $listall[]=array("id"=>1,"user"=>"dong1","name"=>"dongxiaodong1","oo"=>"無(wú)"); $listall[]=array("id"=>2,"user"=>"dong2","name"=>"dongxiaodong2","oo"=>"無(wú)"); $listall[]=array("id"=>3,"user"=>"dong3","name"=>"dongxiaodong3","oo"=>"無(wú)"); $listall[]=array("id"=>4,"user"=>"dong4","name"=>"dongxiaodong4","oo"=>"無(wú)"); $this->assign('listallh',$listall); return $this->fetch();
公共界面
如果多個(gè)頁(yè)面需要使用到同一個(gè)HTML代碼塊,可以將代碼塊放到外面,其它界面直接通過(guò)引用即可
在view目錄下創(chuàng)建自定義文件名字的文件夾(public_view),里面創(chuàng)建自定義文件名的HTML文件(menu.html),在需要的地方直接通過(guò)【{include file="public_view/menu"}】引入即可
創(chuàng)建公共文件
HTML內(nèi)容
<h2>東小東內(nèi)容匹配頁(yè)</h2>
在其它頁(yè)面中使用
<h2>東小東</h2> {include file="public_view/menu"}
顯示效果
到此這篇關(guān)于淺談PHP之ThinkPHP框架使用詳解的文章就介紹到這了,更多相關(guān)PHP ThinkPHP框架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- thinkphp 框架數(shù)據(jù)庫(kù)切換實(shí)現(xiàn)方法分析
- Thinkphp 框架配置操作之動(dòng)態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
- Thinkphp 框架配置操作之配置加載與讀取配置實(shí)例分析
- Thinkphp 框架基礎(chǔ)之入口文件功能、定義與用法分析
- Thinkphp 框架基礎(chǔ)之源碼獲取、環(huán)境要求與目錄結(jié)構(gòu)分析
- Thinkphp 框架擴(kuò)展之驅(qū)動(dòng)擴(kuò)展實(shí)例分析
- Thinkphp 框架擴(kuò)展之應(yīng)用模式實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之Widget擴(kuò)展實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之行為擴(kuò)展原理與實(shí)現(xiàn)方法分析
- Thinkphp 框架擴(kuò)展之標(biāo)簽庫(kù)驅(qū)動(dòng)原理與用法分析
相關(guān)文章
php 記錄進(jìn)行累加并顯示總時(shí)長(zhǎng)為秒的結(jié)果
用php如何將這些記錄進(jìn)行累加,最后顯示為一個(gè)總時(shí)長(zhǎng)為秒鐘的結(jié)果2011-11-11zend api擴(kuò)展的php對(duì)象的autoload工具
bloader提供一個(gè)常用的autoload函數(shù)ld,以及兩個(gè)輔助函數(shù),ld_new(實(shí)例化)和ld_unset(銷(xiāo)毀對(duì)象).2011-04-04PHP實(shí)現(xiàn)定時(shí)生成HTML網(wǎng)站首頁(yè)實(shí)例代碼
做靜態(tài)頁(yè)面的時(shí)候增加這個(gè)功能非常不錯(cuò),大家看下實(shí)現(xiàn)代碼2008-11-11PHP入門(mén)教程之?dāng)?shù)學(xué)運(yùn)算技巧總結(jié)
這篇文章主要介紹了PHP入門(mén)教程之?dāng)?shù)學(xué)運(yùn)算技巧,結(jié)合實(shí)例形式總結(jié)分析了php數(shù)值運(yùn)算、變量檢測(cè)、隨機(jī)數(shù)、絕對(duì)值、取整、最大值、最小值、四舍五入等操作技巧,需要的朋友可以參考下2016-09-09php判斷正常訪(fǎng)問(wèn)和外部訪(fǎng)問(wèn)的示例
這篇文章主要介紹了php判斷正常訪(fǎng)問(wèn)和外部訪(fǎng)問(wèn)的方法,需要的朋友可以參考下2014-02-02