thinkphp mvc模式快速理解應用

  最近看到有人問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

 三.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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章