最近看到有人問thinkphp MVC是怎麼回事,之前學習php做網頁的時候用過tp的框架,現在來分享下我對tp MVC的理解.
更多分享:李慶華個人博客
一:tp5安裝配置
官網下載:ThinkPHP5.0.10完整版
注意:PHP版本>= 5.4.0
下載後解壓到項目文件夾(本文將文件解壓到tp5)
首先是官網ThinkPHP5.0.10完整版的目錄結構:
tp5
├─application 應用目錄
├─extend 擴展類庫目錄(可定義)
├─public 網站對外訪問目錄
├─runtime 運行時目錄(可定義)
├─vendor 第三方類庫目錄(Composer)
├─thinkphp 框架核心目錄
├─build.php 自動生成定義文件(參考)
├─composer.json Composer定義文件
├─LICENSE.txt 授權說明文件
├─README.md README 文件
├─think 命令行工具入口
解壓完成後,訪問測試:http://localhost/tp5/public/
官方提供的默認應用的實際目錄結構和說明如下:
├─application 應用目錄(可設置)
│ ├─index 模塊目錄(可更改)
│ │ ├─controller 控制器目錄
│ │ |–Index.php
│ ├─command.php 命令行工具配置文件
│ ├─common.php 應用公共文件
│ ├─config.php 應用配置文件
│ ├─tags.php 應用行爲擴展定義文件
│ ├─database.php 數據庫配置文件
│ └─route.php 路由配置文件
更改訪問url
原訪問地址爲:http://localhost/tp5/public/ 網站目錄後要增加public比較麻煩
更改爲:http://localhost/tp5 方法是:
1.將public目錄下的index.php文件移動到項目主目錄下(tp5下)
2.將index.php內容修改爲:
// [ 應用入口文件 ]
// 定義應用目錄
define('APP_PATH', __DIR__ . '/./application/');
// 加載框架引導文件
require __DIR__ . '/./thinkphp/start.php';
修改完成後,訪問http://localhost/tp5 即可進入
二.tp5 MVC模式的理解
2.1.什麼是模型-視圖-控制器(MVC)
a、模型(Model)
模型是應用程序的主體部分。模型表示業務數據,或者業務邏輯.
b、視圖(View)
視圖是應用程序中用戶界面相關的部分,是用戶看到並與之交互的界面。
c、控制器(controller)
控制器工作就是根據用戶的輸入,控制用戶界面數據顯示和更新model對象狀態。
MVC的簡單理解
三.MVC的使用
3.1.控制器(controller)
thinkphp url訪問規則是:http://localhost/tp5/入口文件/模塊/控制器/操作方法
例如訪問如下目錄下的index.php則爲:
http://localhost/tp5/index.php/index/index/index
├─application 應用目錄(可設置)
│ ├─index 模塊目錄(可更改)
│ │ ├─controller 控制器目錄
│ │ |–Index.php
//application/index/controller/Index.php
<?php
namespace app\index\controller;//命名空間
class Index //index控制器
{
public function index() //index操作方法
{
return '---太長省略---';
}
}
?>
修改index操作方法爲hello操作方法
<?--application/index/controller/Index.php -->
<?php
namespace app\index\controller;//命名空間
class Index //index控制器
{
public function hello() //hello操作方法
{
return 'helloworld';
}
}
?>
則url爲:http://localhost/tp5/index.php/index/index/hello
3.2視圖(View)
添加視圖文件功能
首先在application/index目錄下面創建一個view目錄,然後添加模板文件view/Index/hello.html
視圖目錄/控制器名/操作名+模板後綴
Index控制器的hello操作 對應的模板文件就應該是:./Application/Index/View/Index/hello.html
<!-- view/Index/hello.html -->
<html>
<head>
<title>hello </title>
</head>
<body>
這裏是hello.html的模板文件
</body>
</html>
此時目錄結構爲:
├─application 應用目錄(可設置)
│ ├─index 模塊目錄(可更改)
│ │ ├─controller 控制器目錄
│ │ |–Index.php
│ │ ├─view 視圖目錄
│ │ ├─index index控制器的視圖目錄
│ │ |–hello.html
輸出視圖,必須在控制器方法中進行模板渲染輸出操作,現在修改控制器類如下:
<?--application/index/controller/Index.php -->
<?php
namespace app\index\controller;//命名空間
use think\Controller;
class Index extends Controller //index控制器
{
public function hello()//hello操作方法
{
return $this->fetch();
//模板文件的調用
}
}
此時在瀏覽器輸入:http://localhost/tp5/index.php/index/index/hello
即可訪問模板文件view/index/hello.html
3.3模型(Model)
模型類的作用大多數情況是操作數據表的,即與數據庫交互
添加視圖文件功能
例如添加“XXX模型”
首先在application/index目錄下面創建一個model目錄,然後添加XXX.php文件
<?php
namespace app\index\model;
use Think\Model;
/**
* 基礎model
*/
class XXX extends \think\Model{
//增加數據
public function addData($data){
$id=$this->add($data);
return $id;
}
//修改數據
public function editData($map,$data){
$result=$this->where($map)->save($data);
return $result;
}
//刪除數據
public function deleteData($map){
$result=$this->where($map)->delete();
return $result;
}
}
MVC簡單流程例子:
用戶打開網站並登陸–(訪問)–>控制器登陸頁面操作方法–>(屏幕輸出)視圖登陸頁面模板—(用戶輸入密碼後)–>控制器調用模型登陸判斷方法(連接數據庫判斷)—登陸成功/失敗–>控制器調用視圖“登陸成功/失敗頁面”
以上就是博主對tp mvc模式的理解,初學php有不正確的地方請指正
本文爲李慶華原創文章,轉載無需和我聯繫,但請註明來自李慶華博客http://eyunzhu.com/