PHP之ThinkPHP框架(界面)


Thinkphp框架其精髓就在於實現了MVC思想,其中M為模板、V為視圖、C為控制器,模板一般是公共使用類,在涉及數據庫時,一般會跟數據表同名,視圖會和控制器類里的方法進行名字的一一對應。

 

下載及配置

官網(http://www.thinkphp.cn/)下載ThinkPHP5.0,將解壓文件放在網站目錄下的ATP5子目錄下

默認主頁:http://localhost:8099/ATP5/public/index.php

如果要隱藏index.php且服務器為Apache則需要將public\.htaccess下內容替換為:

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的公共入口,模塊的區分可以實現如管理員和用戶的不同入口。

 

命名規則

模塊名:全部小寫

控制器名:首字母大寫

方法名:全部小寫

注意:

URL輸入時不區分大小寫,框架會自動根據標志轉換,可在config里設置(url_convert' => false)

如果控制器名為駝峰式命名(如HelloWorld)訪問時地址欄應用下划線處理(如 hello_world)

 

新建入口App

復制一份application,然后在public/index.php中修改對應的入口名字

 

建立MVC目錄

命名規則:

模板(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();

  公共界面

如果多個頁面需要使用到同一個HTML代碼塊,可以將代碼塊放到外面,其它界面直接通過引用即可

在view目錄下創建自定義文件名字的文件夾(public_view),里面創建自定義文件名的HTML文件(menu.html),在需要的地方直接通過【{include file="public_view/menu"}】引入即可

創建公共文件

HTML內容

<h2>東小東內容匹配頁</h2>

在其它頁面中使用

<h2>東小東</h2>
{include file="public_view/menu"}

顯示效果


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM