久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

thinkPHP5.0框架整體架構總覽【應用,模塊,MVC,驅動,行為,命名空間等】

這篇文章主要介紹了thinkPHP5.0框架整體架構,簡單介紹了thinkPHP5.0的應用,模塊,MVC,驅動,行為,命名空間等概念與基本用法,需要的朋友可以參考下

本文講述了thinkPHP5.0框架整體架構。分享給大家供大家參考,具體如下:

ThinkPHP5.0應用基于MVC(模型-視圖-控制器)的方式來組織。

MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。

5.0的URL訪問受路由決定,如果關閉路由或者沒有匹配路由的情況下,則是基于:

http://serverName/index.php(或者其它應用入口文件)/模塊/控制器/操作/參數/值...

下面的一些概念有必要做下了解,可能在后面的內容中經常會被提及。

入口文件

用戶請求的PHP文件,負責處理一個請求(注意,不一定是URL請求)的生命周期,最常見的入口文件就是index.php,有時候也會為了某些特殊的需求而增加新的入口文件,例如給后臺模塊單獨設置的一個入口文件admin.php或者一個控制器程序入口think都屬于入口文件。

應用

應用在ThinkPHP中是一個管理系統架構及生命周期的對象,由系統的 \think\App類完成,應用通常在入口文件中被調用和執行,具有相同的應用目錄(APP_PATH)的應用我們認為是同一個應用,但一個應用可能存在多個入口文件。

應用具有自己獨立的配置文件、公共(函數)文件。

模塊

一個典型的應用是由多個模塊組成的,這些模塊通常都是應用目錄下面的一個子目錄,每個模塊都自己獨立的配置文件、公共文件和類庫文件。

5.0支持單一模塊架構設計,如果你的應用下面只有一個模塊,那么這個模塊的子目錄可以省略,并且在應用配置文件中修改

'app_multi_module' =>  false,

控制器

每個模塊擁有獨立的MVC類庫及配置文件,一個模塊下面有多個控制器負責響應請求,而每個控制器其實就是一個獨立的控制器類。

控制器主要負責請求的接收,并調用相關的模型處理,并最終通過視圖輸出。嚴格來說,控制器不應該過多的介入業務邏輯處理。

事實上,5.0中控制器是可以被跳過的,通過路由我們可以直接把請求調度到某個模型或者其他的類進行處理。

5.0的控制器類比較靈活,可以無需繼承任何基礎類庫。

一個典型的Index控制器類如下:

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'hello,thinkphp!';
  }
}

操作

一個控制器包含多個操作(方法),操作方法是一個URL訪問的最小單元。

下面是一個典型的Index控制器的操作方法定義,包含了兩個操作方法:

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'index';
  }
  public function hello($name)
  {
    return 'Hello,'.$name;
  }
}

操作方法可以不使用任何參數,如果定義了一個非可選參數,則該參數必須通過用戶請求傳入,如果是URL請求,則通常是$_GET或者$_POST方式傳入。

模型

模型類通常完成實際的業務邏輯和數據封裝,并返回和格式無關的數據。

模型類并不一定要訪問數據庫,而且在5.0的架構設計中,只有進行實際的數據庫查詢操作的時候,才會進行數據庫的連接,是真正的惰性連接。

ThinkPHP的模型層支持多層設計,你可以對模型層進行更細化的設計和分工,例如把模型層分為邏輯層/服務層/事件層等等。

視圖

控制器調用模型類后返回的數據通過視圖組裝成不同格式的輸出。視圖根據不同的需求,來決定調用模板引擎進行內容解析后輸出還是直接輸出。

視圖通常會有一系列的模板文件對應不同的控制器和操作方法,并且支持動態設置模板目錄。

驅動

系統很多的組件都采用驅動式設計,從而可以更靈活的擴展,驅動類的位置默認是放入核心類庫目錄下面,也可以重新定義驅動類庫的命名空間而改變驅動的文件位置。

行為

行為(Behavior)是在預先定義好的一個應用位置執行的一些操作。類似于AOP編程中的“切面”的概念,給某一個切面綁定相關行為就成了一種類AOP編程的思想。所以,行為通常是和某個位置相關,行為的執行時間依賴于綁定到了哪個位置上。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

標簽作用:用于根據條件輸出不同內容 1、IF語句格式: {pboot:if(a==b)} 內容1 {else} 內容2 {/pboot:if} 使用提示: 對于非數字類的條件均為字符串類型,請加上引號,如:{pboot:if([list:author]
本文給大家分享的是如何把PHP應用容器化,以及使用docker在服務器上部署PHP應用,非常的簡單實用,有需要的小伙伴可以參考下
下面小編就為大家分享一篇php打開本地exe程序,js打開本地exe應用程序,并傳遞相關參數方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了詳解cookie驗證的php應用的一種SSO解決辦法的相關資料,希望通過本文能幫助到大家讓大家遇到這種類似問題解決,需要的朋友可以參考下
本篇文章主要介紹了Chart.js在Laravel項目中的應用示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP memcache在微信公眾平臺的應用方法,結合具體實例形式分析了php使用memcache保存用戶訪問記錄與響應用戶訪問并給出提示信息的交互模式實現技巧,需要的朋友可以參
主站蜘蛛池模板: 日韩精品免费在线观看 | 亚洲一区精品在线 | 久久精品国产久精国产 | 亚洲欧美日韩国产综合 | 日韩精品一区二区三区第95 | 欧美一级欧美一级在线播放 | 99热这里都是精品 | 91精品国产色综合久久 | 亚洲欧美中文日韩在线 | 国产一区二 | 天天久久| 日韩欧美国产精品一区 | 精品一区二区三区在线观看国产 | 涩色视频在线观看 | 久久视频精品在线 | 久久久久久国产一区二区三区 | 亚洲精品在线免费观看视频 | 色爱综合| 麻豆av一区二区三区久久 | 毛片在线免费播放 | 国产一二三区免费视频 | 久久婷婷香蕉热狠狠综合 | 8x国产精品视频一区二区 | av第一页 | 精品国产91乱码一区二区三区 | 欧美群妇大交群中文字幕 | 久久精品亚洲 | 成人小视频在线观看 | 看毛片的网站 | 欧洲性生活视频 | 麻豆hd| 国产999精品久久久久久 | 国产精品一二区 | 久久久精品欧美 | 久久中文字幕av | 四虎成人av | 超碰免费在线观看 | 久久久精品一区二区三区 | 国产一区高清 | 国产高清美女一级a毛片久久w | 久久视频免费观看 |