999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PHP中MVC模式下類的動態加載實現

2019-03-04 11:05:01張偉偉
電腦知識與技術 2019年34期
關鍵詞:方法

摘要:應用PHP作為Web項目開發語言,類文件之間的相互引用常見又頻繁,但在MVC開發模式之下,由于類文件位置的分散,而使得類間引用關系條理不清。為優化代碼編寫效率與執行效率,運用當前控制器、行為方法路由地址動態裝載和改寫自動加載類的方法,實現隨請求的改變動態加載類文件。

關鍵詞:MVC

中圖分類號:TP393 文獻標識碼:A

文章編號:1009-3044(2019)34-0060-02

軟件項目開發中,為提高效率,提高程序員的代碼產量,框架的應用尤其廣泛。PHP因其上手快,業務框架多等特點成為現今B/S模式開發下熱門語言,程序設計人員可以根據業務需求靈活選用不同的框架進行快速代碼部署[1]。然而,無論哪種框架模式,都需要程序人員對原生代碼的熟知與靈活運用,就PHP開發環境下MVC模式的代碼設計來說,分離的組織代碼路徑的獲取是令人頭疼,也是最容易代碼運行中產生錯誤的地方。為此,創建一個動態路徑的加載應用會極大方便編碼,解脫程序員在不同路徑的煩瑣搜尋。

1 問題環境的描述

1.1 MVC模式

MVC(ModeIViewController)即模型一視圖一控制器的縮寫,是流行至今的一個軟件設計典范,多種開發語言中均有運用[2]。它是一種運用業務邏輯、數據以及應用交互界面分離的方法來組織代碼,將眾多的業務邏輯匯集到一個部件中,在需要改進與個性化定制界面及用戶交互的時,無須重新編寫業務邏輯,從而提高編碼效率。

1.2文件手動加載

PHP項目開發中,模型、視圖與控制器為保證相互獨立,編碼文件所在目錄分散,造成文件調用過程中文件包含關系錯綜復雜,程序員需耗費相當精力實現被包含文件的加載,且包含條理混亂,錯誤頻發。對項目的后期維護與迭代都會產生相當的影響。

為此,項目設計起始就應解決模塊間的加載困擾,應用某策略,使得在文件調用中無須關顧太多路徑問題。

2 自動加載實現

MVC模式下,模型、視圖與控制器分屬不同目錄文件位置(如圖2),用戶首先訪問人口頁面視圖,視圖請求控制器,控制器響應特定行為,獲取相應模型數據,而后將處理結果反饋到視圖中呈現給用戶。因而,在訪問請求中需明確控制器和控制器執行的行為名稱。在用戶的首次訪問時,因請求地址可能只包含域名而未給定控制器與行為名,故而使用默認初始化的CONTROLLER_NAME和ACTION_NAME,當用戶請求非首頁頁面時,由于鏈接地址中明確給出了控制器和行為名稱,在經過路由裝載后,生成當前控制器和視圖的路徑并存放與“URL”和“VIEW_”中,當實例化類對象時,自動調用經重寫和注冊的自動加載類方法,實現包含文件后臺加載。

2.1 常量的定義

在實際項目中,站點代碼會因環境不同部署在不同存儲位置,故而應首先獲取存儲目錄(ROOT_PATH),再依據站點的目錄結構進行設定。具體描述見表1。

2.2 路由裝載

MVC模式頁面的訪問,一般域名地址相同,不同頁面區別只在于地址信息中控制器、行為方法和應用平臺等信息的不同。當控制器、行為方法或應用平臺參數值發生改變時,執行路由解析會針對不同URL,獲取不同的控制器和行為方法名,調用不同的模型應用。代碼如下:

private static function initRoutes0{

$c=isset($_REQUEST["c"])? $_REQUEST["c"]: $GLOBALS[”config"][¨app¨][default_controller'];//接收控制器名

$a=isset($_REQUEST["a”])?

$_REQUEST["a"]:

$GLOBALS["config"]["app"][ 'default_action];//接收行為方法名

$p=isset($_REQUEST["p"D? $_REQUEST["p"): $GLOBALS[”config"][¨app¨Ⅱ7 default_platform 7];//接收平臺名

define(”CONTROLLER_NAME”,$c)//定義常量控制器名

define(”ACTION_NAME”,$a);//定義常量行為方法名

define(”PLATFORM—NAME”,$p);//定義常量平臺名

define(”一URL_”,

CONTROLLER_PATH.

PLAT-FORM_NAME.DS);//當前的控制器目錄

define(“_VIEW一”,VIEW_PATH. PLATFORM_NAME. DS);//當前視圖目錄:”

2.3 類的自動加載

為實現控制器類中方法能調用不同視圖和模型,需要在實例化類對象之前,加載類的定義,即要完成對不同存儲位置下類的引用。為優化代碼的性能,節省無謂的精力消耗,應用類自動加載方案。將自動加載類_autoLoad0方法運用pl_auto-load_register0重新注冊改寫,當代碼解析為新引用類時,自動調用改寫方法,計算路由路徑地址予以實例化加載,以實現不同文件目錄下的類的自動加載。改寫代碼如下:

private static function autoLoad($class_name){

$class_map=array(' MySqIDB =>CORE_PATH.”MySqIDB.class.php”,

'Base' => CORE_PATH.”Base.class.php”);

if(isset($class_map[$class_name])

require

$class_map[$class_namel;

elseif(substr($class_name,一5)==”Model”)

require MOD-EL_PATH.$class_name.“.class.php”;

elseif(substr($class_name, 一10) == ”Controller”) require_URL—.$class_name.”.class.php”;)

3 結束語

本文主要闡述了在PHP語言環境下,應用MVC的框架模式開發Web應用系統中實現類的自動加載,將煩瑣的路徑加載問題運用依托于地址傳值與改寫類的自動加載方法得以解決。

參考文獻:

[1]閆曉亮,焦素云.MVC模式PHP開發框架[J].長春工業大學學報,2016,37(6):592-596.

[2]趙紅霞,王建.基于MVC框架的在線教學管理系統設計與實現[J].信息記錄材料,2018,19(9):175-176.

【通聯編輯:朱寶貴】

收稿日期:2019 -10 -15

作者信息:張偉偉(1980-),男,安徽六安人,副教授,碩士,主要研究方向為計算機網絡與軟件開發。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
可能是方法不對
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 亚洲一级毛片在线观播放| 国产一在线观看| 麻豆精选在线| 人人爽人人爽人人片| 国产丝袜91| 亚洲第一成人在线| 国内熟女少妇一线天| 2021国产精品自拍| 成人国产精品网站在线看 | 成人午夜免费视频| 日韩欧美中文| 在线日韩日本国产亚洲| 国产日韩欧美在线视频免费观看| 国产AV无码专区亚洲A∨毛片| 国产在线拍偷自揄观看视频网站| 国产成人精品第一区二区| 国产精品深爱在线| 亚洲美女高潮久久久久久久| 91国内外精品自在线播放| 四虎国产精品永久在线网址| 国产精品对白刺激| 国产丝袜第一页| 一本大道无码日韩精品影视| а∨天堂一区中文字幕| 色综合热无码热国产| 中文字幕无线码一区| 久久精品人人做人人| 无码国产伊人| 日韩区欧美区| 免费jjzz在在线播放国产| 亚洲AⅤ综合在线欧美一区| 亚洲a免费| 日本a∨在线观看| 日韩精品资源| 亚洲精品色AV无码看| 在线观看91精品国产剧情免费| 老司机aⅴ在线精品导航| 国产成人1024精品下载| 大学生久久香蕉国产线观看| 九九这里只有精品视频| 国产不卡一级毛片视频| 久久婷婷六月| 日韩欧美国产三级| 成人av手机在线观看| 在线观看欧美国产| 在线免费观看AV| 欧美午夜精品| 亚洲综合色在线| 99人妻碰碰碰久久久久禁片| 青青草国产在线视频| 亚洲综合精品香蕉久久网| 欧美一级99在线观看国产| 九九九国产| 伊人国产无码高清视频| 久久久久久久97| 亚洲天堂成人| 毛片一级在线| 中文字幕 91| 无码专区国产精品第一页| 狠狠综合久久| 91免费在线看| 欧美激情综合一区二区| 久久综合伊人 六十路| 在线播放国产一区| 黄色网址免费在线| 三上悠亚精品二区在线观看| 国产第四页| 成人在线视频一区| 99热这里只有免费国产精品| 九九热精品在线视频| 日韩国产综合精选| 免费观看国产小粉嫩喷水| 国产免费网址| 国产地址二永久伊甸园| 精品少妇人妻无码久久| 国产成人高清精品免费软件 | 国产成+人+综合+亚洲欧美| 97综合久久| 免费国产高清精品一区在线| 日韩123欧美字幕| av天堂最新版在线| 国产成人8x视频一区二区|