TOP

手寫一個自己的簡單MVC框架myPHP(一)
2017-10-10 11:40:05 】 瀏覽:10141
Tags:

myPHP框架

      采用的是MVC 思想,應用純面向對象及項目單一入口,實現的一個自定義的框架。(自己興趣的練習)

一、項目單一入口

入口文件

myphp\index.php前臺

      一個網站所有的請求都請求一個文件(入口文件)index.php\admin.php。入口很簡單,用于定義一個訪問的權限,引入初始化文件

初始化文件

      字符集

      路徑

      配置文件

      自動加載

      系統錯誤display_errors='on'      error_reporting =E_ALL

      主要用于實現字符集的設置、路徑常量的配置、配置文件、系統錯誤等,分析URL中的模塊或行為,之后自動分發模塊與行為(本質就是實例化對象,并調用對象的方法)。Application

 

控制器C

      主要根據用戶的請求完成業務邏輯處理。調用模型(M),接收數據,并調用視圖類來處理數據,回顯數據給用戶。

模型M

      一個模型對應數據表优乐棋牌app下载,模型在代碼中體現是一個類。類中的方法就是根據用戶的業務請求實現的對數據表的操作SQL語句(用戶的請求最終在模型中的體現是一條SQL)。

      SQL語句的執行由DB類(本框架中使用的是自已封裝的PDO類)來執行。

視圖V

      主要用于實現將數據顯示在HTML頁面中。

自己畫的圖:

MVC的優勢:各司其職,互不干擾,有利于開發中的分工;

                 有利于代碼的重用;

                 市場上主流的框架基本都滿足MVC的思想。

二、搭建框架myPHP

      在一個網站中會用很多文件,合理的做法,是使用目錄 分門別類的進行存放。

1、目錄結構:

對于一個網站有前臺部分與后臺部分,有兩種實現方案:

      1、雙主機(兩個域名),前臺與后臺各對應一個域名。安全

      2、前后臺共用一個主機。方便(首先方案)

 

X:\根據你自己搭的環境的路徑\myphp                     網站根目錄

X:\根據你自己搭的環境的路徑\myphp\Admin       網站后臺主目錄

 這里所創的文件夾:

 

2、創建主機

在httpd-vhosts.conf配置文件配置

 

3、入口文件

在/myphp/下創建index.php文件

 

說明:

      在入口文件定義ACCESS常量,在其后的所有的PHP文件中判斷此常量,如果有,則表示合法訪問优乐棋牌app下载,如果沒有,則表示非法訪問

      由于引入的Application.class.php文件中使用命名空間,所以在訪問Application類時需要使用非限定訪問。Core\Application::run();

拓展:

      另一種實現項目單一入口的方案是使用Apache的rewrite機制。

4、初始化文件

a、在core目錄創建Application.class.php文件

 

先進行測試是否可以訪問;注意:在下面我不會截圖到class名那里,所有的方法都是在類內的。

b、在Application類中創建setChar方法來完成字符集的設置

 

在寫入一個私有的靜態方法后需要在作為單一出口的公有靜態方法訪問使其生效:注意:在下面我不會再多截圖其他方法的單一出口,都在這里面。

c、設置系統錯誤處理方式

 

一般在做開發的時候,為防止用戶看到錯誤信息,而出現的不友好界面,故一般性會在php.ini的配置文件display_errors=off;關閉

d、定義目錄常量

      由于php文件中會頻繁的引入文件,被引入的文件存放在目錄內,為了統一管理,方便維護,將目錄的絕對路徑,設置為目錄常量

(echo,var_dump是進行一些調式,查看你想要的信息是否正確)

e、引入配置文件

      配置文件中的配置的信息一般是網站中可能會更改,但很少更改的信息

創建配置文件myphp/config/config.php

 

 

說明:

      php文件中的return是將數據返回文件包含語句處(include、require)

 

總結:

      全局變量          只在全局

      局部變量          只在定義的函數內

      類屬性             可以跨方法使用

      全局常量          可以跨類使用

      $_SESSION      可以跨腳本使用

     

f、自動加載

  

請關注公眾號獲取更多資料



首頁 上一頁 1 2 下一頁 尾頁 1/2/2
】【打印繁體】【】【】 【】【】【】 【關閉】 【返回頂部
上一篇手寫一個自己的簡單MVC框架myPHP 下一篇手寫一個自己的簡單MVC框架myPHP