摘要:如上為三個(gè)模塊行為行為是在預(yù)先定義好的一個(gè)應(yīng)用位置執(zhí)行的一些操作。發(fā)生作用的位置稱之為鉤子,當(dāng)應(yīng)用程序運(yùn)行到這個(gè)鉤子的時(shí)候,就會(huì)被攔截下來,統(tǒng)一執(zhí)行相關(guān)的行為。給某一個(gè)鉤子綁定相關(guān)行為就成了一種類編程的思想。
ThinkPhp5.0
Composer: php世界里的包管理器目錄結(jié)構(gòu)
project 應(yīng)用部署目錄 ├─application 應(yīng)用目錄(可設(shè)置) │ ├─common 公共模塊目錄(可更改) │ ├─index 模塊目錄(可更改) │ │ ├─config.php 模塊配置文件 │ │ ├─common.php 模塊函數(shù)文件 │ │ ├─controller 控制器目錄?? │ │ ├─model 模型目錄?? │ │ ├─view 視圖目錄?? │ │ └─ ... 更多類庫(kù)目錄 │ ├─command.php 命令行工具配置文件 │ ├─common.php 應(yīng)用公共(函數(shù))文件 │ ├─config.php 應(yīng)用(公共)配置文件 │ ├─database.php 數(shù)據(jù)庫(kù)配置文件 │ ├─tags.php 應(yīng)用行為擴(kuò)展定義文件 │ └─route.php 路由配置文件 ├─extend 擴(kuò)展類庫(kù)目錄(可定義) ├─public WEB 部署目錄(對(duì)外訪問目錄) │ ├─static 靜態(tài)資源存放目錄(css,js,image) │ ├─index.php 應(yīng)用入口文件?? │ ├─router.php 快速測(cè)試文件 │ └─.htaccess 用于 apache 的重寫 ├─runtime 應(yīng)用的運(yùn)行時(shí)目錄(可寫,可設(shè)置) ├─vendor 第三方類庫(kù)目錄(Composer) ├─thinkphp 框架系統(tǒng)目錄 │ ├─lang 語(yǔ)言包目錄 │ ├─library 框架核心類庫(kù)目錄 │ │ ├─think Think 類庫(kù)包目錄 │ │ └─traits 系統(tǒng) Traits 目錄 │ ├─tpl 系統(tǒng)模板目錄 │ ├─.htaccess 用于 apache 的重寫 │ ├─.travis.yml CI 定義文件 │ ├─base.php 基礎(chǔ)定義文件 │ ├─composer.json composer 定義文件 │ ├─console.php 控制臺(tái)入口文件 │ ├─convention.php 慣例配置文件 │ ├─helper.php 助手函數(shù)文件(可選) │ ├─LICENSE.txt 授權(quán)說明文件 │ ├─phpunit.xml 單元測(cè)試配置文件 │ ├─README.md README 文件 │ └─start.php 框架引導(dǎo)文件 ├─build.php 自動(dòng)生成定義文件(參考) ├─composer.json composer 定義文件 ├─LICENSE.txt 授權(quán)說明文件 ├─README.md README 文件 ├─think 命令行入口文件架構(gòu) 模型-視圖-控制器
thinkphp5.0 is based on mvc
一個(gè)控制器包含多個(gè)操作(方法),操作方法是一個(gè)URL訪問的最小單元。
http: //serverName/index.php(或者其它應(yīng)用入口文件)/模塊/控制器/操作/[參數(shù)名/參數(shù)值...]eg: localhost:8080/in`dex.php/index/method
模型類通常完成實(shí)際的業(yè)務(wù)邏輯和數(shù)據(jù)封裝,并返回和格式無關(guān)的數(shù)據(jù)。
ThinkPHP的模型層支持多層設(shè)計(jì),可以將模型更加細(xì)分,例如把模型層分為邏輯層/服務(wù)層/事件層等等。
控制器調(diào)用模型類后返回的數(shù)據(jù)通過視圖組裝成不同格式的輸出
5.0的URL訪問受路由決定,如果關(guān)閉路由或者沒有匹配路由的情況下,則是基于
http: //serverName/index.php(或者其它應(yīng)用入口文件)/模塊/控制器/操作/參數(shù)/值…
一個(gè)典型的應(yīng)用是由多個(gè)模塊組成的,這些模塊通常都是應(yīng)用目錄下面的一個(gè)子目錄,每個(gè)模塊都有自己獨(dú)立的配置文件、公共文件和類庫(kù)文件。如上index/test/test2為三個(gè)模塊
行為(Behavior)是在預(yù)先定義好的一個(gè)應(yīng)用位置執(zhí)行的一些操作。
發(fā)生作用的位置稱之為鉤子,當(dāng)應(yīng)用程序運(yùn)行到這個(gè)鉤子的時(shí)候,就會(huì)被攔截下來,統(tǒng)一執(zhí)行相關(guān)的行為。給某一個(gè)鉤子綁定相關(guān)行為就成了一種類 AOP編程的思想。
在應(yīng)用程序中進(jìn)行行為偵聽
// 在app_init位置偵聽行為 hinkHook::listen("app_init");
然后對(duì)某個(gè)位置進(jìn)行行為綁定:
// 綁定行為到app_init位置 hinkHook::add("app_init","appindexehaviorTest");
入口文件
入口文件位置的設(shè)計(jì)是為了讓應(yīng)用部署更安全,public目錄為web可訪問目錄,其他的文件都可以放到非WEB訪問目錄下面。
一般路徑在../public/index.php
Index.php
// 應(yīng)用入口文件 // 定義項(xiàng)目路徑 define("APP_PATH", __DIR__ . "/../application/"); // 加載框架引導(dǎo)文件 require __DIR__ . "/../thinkphp/start.php";
引導(dǎo)文件
start.php文件就是系統(tǒng)默認(rèn)的一個(gè)引導(dǎo)文件。在引導(dǎo)文件中,會(huì)依次執(zhí)行下面操作:
加載系統(tǒng)常量定義;
加載環(huán)境變量定義文件;
注冊(cè)自動(dòng)加載機(jī)制;
注冊(cè)錯(cuò)誤和異常處理機(jī)制;
加載慣例配置文件;
執(zhí)行應(yīng)用;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/31814.html
摘要:抽象數(shù)據(jù)庫(kù)訪問層作用對(duì)不同數(shù)據(jù)庫(kù)的操作進(jìn)行封裝,最終達(dá)到用統(tǒng)一的操作方式操作不同數(shù)據(jù)庫(kù)連接器隱藏不同數(shù)據(jù)庫(kù)連接的差異,自動(dòng)加載對(duì)應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)查詢構(gòu)建起隱藏不同數(shù)據(jù)庫(kù)的差異,自動(dòng)拼接路由層什么是路由每個(gè)框架都具有路由功能,所謂路由就是用戶請(qǐng) 抽象數(shù)據(jù)庫(kù)訪問層 作用:對(duì)不同數(shù)據(jù)庫(kù)的操作進(jìn)行封裝,最終達(dá)到:用統(tǒng)一的操作方式操作不同數(shù)據(jù)庫(kù) 連接器:隱藏不同數(shù)據(jù)庫(kù)連接的差異,自動(dòng)加載對(duì)應(yīng)的數(shù)...
摘要:回調(diào)說白了,就是把函數(shù)當(dāng)參數(shù)傳給另一根函數(shù),在另一個(gè)函數(shù)執(zhí)行時(shí)調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個(gè)函數(shù)和,下面的方法請(qǐng)求成功執(zhí)行,失敗執(zhí)行異步異步的原理我看了網(wǎng)上的一些博客和例子,大都以定時(shí)任務(wù)為例子說明,但具體的原理我還是不太 回調(diào) 說白了,就是把函數(shù)當(dāng)參數(shù)傳給另一根函數(shù),在另一個(gè)函數(shù)執(zhí)行時(shí)調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個(gè)函數(shù)success和error,下...
摘要:回調(diào)說白了,就是把函數(shù)當(dāng)參數(shù)傳給另一根函數(shù),在另一個(gè)函數(shù)執(zhí)行時(shí)調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個(gè)函數(shù)和,下面的方法請(qǐng)求成功執(zhí)行,失敗執(zhí)行異步異步的原理我看了網(wǎng)上的一些博客和例子,大都以定時(shí)任務(wù)為例子說明,但具體的原理我還是不太 回調(diào) 說白了,就是把函數(shù)當(dāng)參數(shù)傳給另一根函數(shù),在另一個(gè)函數(shù)執(zhí)行時(shí)調(diào)用此函數(shù)例如,在下面這段代碼中,上面定義了兩個(gè)函數(shù)success和error,下...
摘要:最近剛剛學(xué)習(xí)了一個(gè)的開發(fā)框架,最重要的是可以用開發(fā)傳送門以下是學(xué)習(xí)過程中的筆記上面時(shí)全局安裝完成后用檢查是否成功創(chuàng)建了一個(gè)名為的項(xiàng)目,然后進(jìn)入目錄,安裝依賴,啟動(dòng)項(xiàng)目,瀏覽器打開就可以看到頁(yè)面了。 最近剛剛學(xué)習(xí)了thinkjs--一個(gè)node的MVC開發(fā)框架,最重要的是可以用es6/es7開發(fā)【傳送門】 以下是學(xué)習(xí)過程中的筆記: npm install thinkjs@2 -g --v...
在tp上實(shí)現(xiàn)的auth2驗(yàn)證的,在網(wǎng)上發(fā)現(xiàn)筆記很少, 不像yii, 故在此發(fā)表一下筆記,用來幫助有相關(guān)需求的朋友 PS: 鑒于oauth2有四種方案, 本實(shí)例是基于 客戶端憑證 實(shí)現(xiàn),其他三種就不講述了 一、通過composer安裝 composer require --prefer-dist bshaffer/oauth2-server-php 安裝完成后,如圖:showImg(https://...
閱讀 3968·2021-09-23 11:32
閱讀 2647·2021-09-06 15:01
閱讀 1713·2021-08-18 10:24
閱讀 3607·2019-12-27 11:44
閱讀 3679·2019-08-30 15:52
閱讀 2586·2019-08-30 11:11
閱讀 818·2019-08-29 17:27
閱讀 671·2019-08-29 16:22