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
賺錢方法
主站蜘蛛池模板: 伊人久久精品亚洲午夜| 欧美日韩国产在线观看一区二区三区 | 欧美亚洲一区二区三区在线| 99在线视频精品| 久久激情影院| 一区二区三区四区在线| 欧洲亚洲一区| 国产人人乐人人爱| 一本一本大道香蕉久在线播放| 国产精品网址在线观看你懂的| 久久免费观看视频| 免费高清毛片| 无码高潮喷水在线观看| 亚洲黄色成人| 欧美精品1区2区| 国产成人免费| 欧美日韩精品一区二区在线线| AV天堂资源福利在线观看| 久久久久人妻精品一区三寸蜜桃| 国产偷倩视频| 成人福利在线免费观看| 午夜a级毛片| 在线观看国产小视频| 午夜啪啪福利| 激情無極限的亚洲一区免费| 国产精品无码一二三视频| 亚洲成人黄色在线观看| 亚洲美女一级毛片| 啪啪永久免费av| 黄片在线永久| 国产丰满大乳无码免费播放| 亚洲精品中文字幕无乱码| 综合色在线| 天堂成人在线视频| 国产欧美视频在线观看| 中文字幕人妻av一区二区| 国产成人免费观看在线视频| 超级碰免费视频91| 国产成人区在线观看视频| 91久久国产热精品免费| 欧美特黄一级大黄录像| 91国内在线视频| 天天综合色网| 国产电话自拍伊人| 欧美性久久久久| 亚洲国产成人麻豆精品| 99久久精品美女高潮喷水| 亚洲综合九九| 婷婷综合亚洲| 97成人在线视频| 91在线视频福利| 亚洲人成高清| 成人综合在线观看| vvvv98国产成人综合青青| 欧美一区精品| 亚洲国产天堂久久综合| 色噜噜狠狠狠综合曰曰曰| 亚洲天堂网2014| 亚洲欧美日本国产专区一区| 欧美在线视频不卡第一页| 国产精品深爱在线| 国产国产人在线成免费视频狼人色| 青青青国产在线播放| 婷婷六月综合网| 激情成人综合网| 国产交换配偶在线视频| 亚洲国语自产一区第二页| 日韩在线欧美在线| 亚洲综合经典在线一区二区| 欧美一区二区人人喊爽| 亚洲国产高清精品线久久| 亚洲一级毛片| 97精品久久久大香线焦| 国产素人在线| 2021国产乱人伦在线播放| 久久久久久久久18禁秘| 日本成人精品视频| 爽爽影院十八禁在线观看| 91久久夜色精品国产网站| 美女被躁出白浆视频播放| a天堂视频在线| 国产精品手机在线播放|