久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      超簡單開發(fā)自己的php框架一點都不難!

      超簡單開發(fā)自己的php框架一點都不難!

      出發(fā)點:我個人理解 自己開發(fā)框架也是鍛煉原生的一種手段。寫完之后看別的框架也方便多了。如果你遇到一個沒有文檔或文檔極少的框架,可以跟著這個思路摸索著補充。或干脆拿著原生上來就是干,我剛接觸yii2的時候就是這樣,都沒來的及看文檔就開工了,基本純原生寫的,就用了個yii2的csrf和雙語言….

      寫框架的極簡思路

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

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

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

      詳細思路

      超簡單開發(fā)自己的php框架一點都不難!

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

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

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

      3、引入函數(shù)庫

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

      4、自動加載

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

      存在返回true;

      不存在就加載。提示:反斜線替換

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

      不是就返回false

      注意:寫完再建立lib目錄,引入路由類。測試

      5、啟動框架

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

      6、路由解析三部曲

      6.1、隱藏入口文件

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

      存在,就解析

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

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

      正常情況

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

      不存在給默認值

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

      7、加載控制器

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

      將路由解析出來的控制器名,拼成控制器文件的路徑。

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

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

      8、返回結(jié)果

      跑起來試一試,其實到這步一個建檔的框架已經(jīng)完成了,接下來的是擴展框架

      9、在控制器中連接模型類

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

      在控制器中new model類,寫sql操作數(shù)據(jù)庫

      10、中寫視圖類

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

      然后控制器繼承該類,進行調(diào)用。

      11、寫配置類

      新建配置文件類

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

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

      寫獲取所有配置文件的方法

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

      測試:配置文件好使不

      12、寫日志類

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

      建立日志類

      建立驅(qū)動目錄

      建立日志的配置文件

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

      超簡單開發(fā)自己的php框架一點都不難!

      第1個類庫報錯的地址:https://github.com/filp/whoops

      第2個類庫酷炫的打印變量:"s

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

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

      第4個類庫模板引擎的地址:https://twig.symfony.com/doc/2.x/intro.html#installation

      超簡單開發(fā)自己的php框架一點都不難!

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

      超簡單開發(fā)自己的php框架一點都不難!

      超簡單開發(fā)自己的php框架一點都不難!

      注意:下圖很重要

      超簡單開發(fā)自己的php框架一點都不難!

      超簡單開發(fā)自己的php框架一點都不難!

      14、使用medoo數(shù)據(jù)庫類

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

      http://medoo.lvtao.net/

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

      15、模板引擎類庫

      思路:修改display方法,改成類庫的,還有模板布局

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

      這里寫2個封裝好的方法

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

      超簡單開發(fā)自己的php框架一點都不難!

      超簡單開發(fā)自己的php框架一點都不難!

      封裝跳轉(zhuǎn)方法

      超簡單開發(fā)自己的php框架一點都不難!

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號