Thinkphp框架其精髓就在於實現了MVC思想,其中M爲模板、V爲視圖、C爲控制器,模板通常是公共使用類,在涉及數據庫時,通常會跟數據表同名,視圖會和控制器類裏的方法進行名字的一一對應。php
官網(http://www.thinkphp.cn/)下載ThinkPHP5.0,將解壓文件放在網站目錄下的ATP5子目錄下css
默認主頁:http://localhost:8099/ATP5/public/index.phphtml
若是要隱藏index.php且服務器爲Apache則須要將public\.htaccess下內容替換爲:thinkphp
1 <IfModule mod_rewrite.c> 2 Options +FollowSymlinks -Multiviews 3 RewriteEngine on 4 RewriteCond %{REQUEST_FILENAME} !-d 5 RewriteCond %{REQUEST_FILENAME} !-f 6 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] 7 </IfModule>
php版本大於等於5.4數據庫
http://localhost:8099/ATP5/public /模塊/控制器/方法數組
其中http://localhost:8099/ATP5/public /爲thinkphp的公共入口,模塊的區分能夠實現如管理員和用戶的不一樣入口。緩存
模塊名:所有小寫php框架
控制器名:首字母大寫服務器
方法名:所有小寫app
注意:
URL輸入時不區分大小寫,框架會自動根據標誌轉換,可在config裏設置(url_convert' => false)
若是控制器名爲駝峯式命名(如HelloWorld)訪問時地址欄應用下劃線處理(如 hello_world)
複製一份application,而後在public/index.php中修改對應的入口名字
命名規則:
模板(model):首字母大寫
視圖(view):所有小寫
控制器(controller):首字母大寫
打開應用的目錄裏的config.php文件配置:
app_debug 值爲true則顯示調試信息
show_error_msg 值爲ture 則顯示錯誤信息
CSS和JS及圖片的地址引用
在視圖目錄下想要引用到一些資源文件,如css,js,圖片等,是不支持使用把相關文件放到view目錄下的,應該把資源文件放在public目錄下,而後在App中的config.php裏的view_ replace_str下添加資源文件的目錄宏定義
1 // 視圖輸出字符串內容替換 2 'view_replace_str' => [ 3 4 '__DSTYLE__'=>"/atp/public/static/library", 5 '__DIMG__'=>"/atp/public/img", 6 7 ],
使用:
若是修改後在開發者工具發現數據使用依然是上一次更改的地址,說明有緩存在做怪,能夠到 runtime\temp 目錄下清除
1 <img src="__DIMG__/banner7.png"> 2 <link rel="stylesheet" href="__DSTYLE__/donglayui/layui/css/layui.css" media="all">
視圖代碼:
1 <!doctype html> 2 <h1>--{$name1}--</h1> 3 <h2>--{$name2}--</h2>
控制器代碼:
1 <?php 2 namespace app\index\controller; 3 //導入必要模塊 4 use think\Controller; 5 6 7 class Xiao extends Controller 8 { 9 public function xiao2(){ 10 $valuex1="匹配值1"; 11 $valuex2="匹配值2"; 12 //匹配,變量賦值 13 $this->assign("name1",$valuex1); 14 $this->assign("name2",$valuex2); 15 //渲染輸出 16 //返回視圖 fetch實參爲空表示找函數同名的html,實參能夠傳遞其它視圖名稱 17 return $this->fetch(); 18 } 19 20 }
數組值的匹配
視圖中獲取
{$ff.1}
控制器
$valuex2=array("0","1","1"); $this->assign("ff",$valuex2); return $this->fetch();
Volist的使用
該方法是thinkphp中頗有趣的方法,其能夠實如今視圖文件中進行數組的循環遍歷,最常會使用其進行數據庫表格的遍歷顯示。
視圖中的代碼:
1 <table border="1"> 2 <!--表格頭--> 3 <thead> 4 <tr> 5 <th>id</th> 6 <th>用戶名</th> 7 <th>暱稱</th> 8 <th>備註</th> 9 </tr> 10 </thead> 11 12 <!--表格內容--> 13 <tbody> 14 <!--循環遍歷--> 15 {volist name="listallh" id="vo"} 16 <tr> 17 <td>{$vo.id}</td> 18 <td>{$vo.user}</td> 19 <td>{$vo.name}</td> 20 <td>{$vo.oo}</td> 21 </tr> 22 {/volist} 23 </tbody> 24 </table>
控制器代碼:
1 $listall=array(); 2 $listall[]=array("id"=>1,"user"=>"dong1","name"=>"dongxiaodong1","oo"=>"無"); 3 $listall[]=array("id"=>2,"user"=>"dong2","name"=>"dongxiaodong2","oo"=>"無"); 4 $listall[]=array("id"=>3,"user"=>"dong3","name"=>"dongxiaodong3","oo"=>"無"); 5 $listall[]=array("id"=>4,"user"=>"dong4","name"=>"dongxiaodong4","oo"=>"無"); 6 $this->assign('listallh',$listall); 7 return $this->fetch();