欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何開(kāi)發(fā)自己的php框架

如何開(kāi)發(fā)自己的php框架?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括昭通網(wǎng)站建設(shè)、昭通網(wǎng)站制作、昭通網(wǎng)頁(yè)制作以及昭通網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,昭通網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到昭通省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!

寫(xiě)框架的極簡(jiǎn)思路

接收,打印參數(shù)想怎么弄。如 獲取配置文件的方法,根據(jù)傳過(guò)來(lái)的參數(shù) 構(gòu)想

1、一般都是先判斷文件是否存在。存在就該include就include,該new就new。然后做存到屬性中(做緩存)

2、主要是調(diào)用流程:都什么需要放到run方法中

詳細(xì)思路

如何開(kāi)發(fā)自己的php框架

1、寫(xiě)入口文件(2-5步都是寫(xiě)在入口文件中的)

2、定義常量(就是框架的各層級(jí)目錄,省著每次寫(xiě)一大串)

//定義框架根目錄
//定義核心文件目錄路徑
//應(yīng)用目錄(包含控制器、模型等)
//是否開(kāi)啟調(diào)試
//如果DEBUG為true,將錯(cuò)誤顯示打開(kāi)。否則不顯示

3、引入函數(shù)庫(kù)

//加載公共方法
//加載核心文件

4、自動(dòng)加載

判斷要加載的類(lèi)是否存在。提示:已經(jīng)存到屬性中了,其實(shí)拿這個(gè)屬性判斷。

存在返回true;

不存在就加載。提示:反斜線(xiàn)替換

要加載的是文件,就include。注意:這個(gè)文件從根目錄下找

不是就返回false

注意:寫(xiě)完再建立lib目錄,引入路由類(lèi)。測(cè)試

5、啟動(dòng)框架

//調(diào)用核心文件中的run方法(我的核心文件是core/init.php)

6、路由解析三部曲

6.1、隱藏入口文件

6.2、獲取url的參數(shù)

存在,就解析

正常情況,先轉(zhuǎn)數(shù)組(方便處理),效驗(yàn)非正常情況(如:只在url上輸入了控制器,沒(méi)有輸入方法,給方法個(gè)默認(rèn)值)

處里url上的多余參數(shù)

正常情況

非正常情況,他輸入的是奇數(shù)

不存在給默認(rèn)值

6.3、返回對(duì)應(yīng)的控制器和方法(其實(shí)在6.2中存到屬性中,也算是返回了)

7、加載控制器

在run()時(shí)就要加載控制器

將路由解析出來(lái)的控制器名,拼成控制器文件的路徑。

判斷控制器文件是否存在,存在就new。不存在就拋出錯(cuò)誤

注意:這里引入了模塊的概念\app是模塊不是應(yīng)用,比成熟的框架少一層

8、返回結(jié)果

跑起來(lái)試一試,其實(shí)到這步一個(gè)建檔的框架已經(jīng)完成了,接下來(lái)的是擴(kuò)展框架

9、在控制器中連接模型類(lèi)

在lib中建立個(gè)model類(lèi),用于連接數(shù)據(jù)庫(kù)

在控制器中new model類(lèi),寫(xiě)sql操作數(shù)據(jù)庫(kù)

10、中寫(xiě)視圖類(lèi)

assign和display方法寫(xiě)在初始化(core/init.php)類(lèi)中。注意:先賦值,后包含模板文件

然后控制器繼承該類(lèi),進(jìn)行調(diào)用。

11、寫(xiě)配置類(lèi)

   新建配置文件類(lèi)

       寫(xiě)單個(gè)配置文件的方法(提示:既然他倆獲取,傳參是少不了的。2個(gè)參數(shù),配置項(xiàng),配置文件名。打印參數(shù),然后構(gòu)想)

            //1、判斷配置文件是否存在,存在就include
            //2、判斷配置項(xiàng)是否存在,存在直接給緩存到屬性中
            //3、判斷屬性中有無(wú)緩存,有就直接返回屬性中存的

寫(xiě)獲取所有配置文件的方法

提示: 新建個(gè)配置文件目錄,用來(lái)放各種配置文件(如 數(shù)據(jù)庫(kù)的,路由的,日志的....)

測(cè)試:配置文件好使不

12、寫(xiě)日志類(lèi)

/**
 * 提示:用的是工廠(chǎng)模式的思想:
 * 1、讀取配置文件,獲取當(dāng)前驅(qū)動(dòng)。在初始化方法中new類(lèi)
 * 2、在log方法中,調(diào)用不同驅(qū)動(dòng)中的log方法
 */

建立日志類(lèi)

建立驅(qū)動(dòng)目錄

建立日志的配置文件

13、使用composer:編寫(xiě)json文件,自己的框架上到github上供人家使用

如何開(kāi)發(fā)自己的php框架

第1個(gè)類(lèi)庫(kù)報(bào)錯(cuò)的地址:https://github.com/filp/whoops

第2個(gè)類(lèi)庫(kù)酷炫的打印變量:"s

"symfony/var-dumper":"*"//更帥氣變量輸出的效果
ymfony/var-umper":"*"//更帥氣變量輸出的效果

第3個(gè)類(lèi)庫(kù)數(shù)據(jù)庫(kù)的地址:http://medoo.lvtao.net/1.2/doc.php

第4個(gè)類(lèi)庫(kù)模板引擎的地址:https://twig.symfony.com/doc/2.x/intro.html#installation

如何開(kāi)發(fā)自己的php框架

鏡像網(wǎng)址:https://pkg.phpcomposer.com/

如何開(kāi)發(fā)自己的php框架

如何開(kāi)發(fā)自己的php框架

注意:下圖很重要

如何開(kāi)發(fā)自己的php框架

如何開(kāi)發(fā)自己的php框架

14、使用medoo數(shù)據(jù)庫(kù)類(lèi)

如果自己封裝pdo可能會(huì)有什么想象不到的漏洞,這樣我們就不如直接用現(xiàn)成的類(lèi)庫(kù)加載

http://medoo.lvtao.net/

思路:先將原來(lái)繼承的pdo換成該類(lèi)庫(kù),在封裝模型控制器調(diào)用

15、模板引擎類(lèi)庫(kù)

思路:修改display方法,改成類(lèi)庫(kù)的,還有模板布局

剩下其余的擴(kuò)展就因人而異了,想不到的話(huà),可能去參考成熟的框架

這里寫(xiě)2個(gè)封裝好的方法

封裝post接收方法(給大家做參考思路)

如何開(kāi)發(fā)自己的php框架

如何開(kāi)發(fā)自己的php框架

封裝跳轉(zhuǎn)方法

如何開(kāi)發(fā)自己的php框架

看完上述內(nèi)容,你們掌握如何開(kāi)發(fā)自己的php框架的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

當(dāng)前題目:如何開(kāi)發(fā)自己的php框架
網(wǎng)站地址:http://www.chinadenli.net/article40/pigoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航微信小程序關(guān)鍵詞優(yōu)化商城網(wǎng)站網(wǎng)站導(dǎo)航網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)