王欣
摘 要:PHP框架開發已經成為Web系統發展的重要環節,加強對PHP技術的研究和開發具有非常重要的意義,對于PHP技術的發展和推廣具有一定積極作用。本文對PHP框架開發的架構進行了分析,分別從文件和參數、控制器和動作、組件和事件等方面進行了分析,介紹了PHP框架開發的關鍵技術,包括MVC模式、視圖層、數據訪問層等內容。
關鍵詞:PHP;框架開發;關鍵技術
中圖分類號:TP311.5 文獻標志碼:A
隨著計算機技術的全面發展,服務器腳本語言也在不斷進步,其中PHP技術發展的越來越快,由于PHP的簡單、適用性更加廣泛,PHP技術已經是Web語言開發中非常重要的工具之一。但是在PHP5之前的技術都不具有非常好的適用性,因此PHP技術的發展還是落后于Java等計算機語言,加強對PHP技術的研究和推廣對PHP技術的開發和發展具有重要意義。本文首先對PHP框架開發的架構進行了分析,分別從文件和參數、控制器和動作、組件和事件等方面進行了分析,重點介紹了PHP框架開發的關鍵技術,包括MVC模式、視圖層、數據訪問層等內容。通過對PHP框架開發關鍵技術的介紹,有利于推動PHP技術的推廣和發展。
1 PHP框架開發的架構分析
PHP就是在HTTP發出請求時需要通過服務器端腳本PHP對這些數據資料進行管理。了解PHP框架開發就必須要了解Web架構情況,通常將Web架構分為3種情況,包括基于文件和參數、基于控制器和動作、基于組件和事件等這3種情況,以下對這3種架構分別進行分析。
1.1 基于文件和參數
一般情況下,在Web系統中是按照腳本的功能差異,將服務器腳本放在很多功能不同的目錄中,每個腳本都有自己的URL地址。當HTTP發出請求時,就可以按照腳本的URL地址進行訪問,同時需要在URL增加一些參數,讓相應的腳本處理這些指定的數據信息,在腳本完成數據處理后再將處理結果反饋給HTTP。這種方式比較簡單,就是通過過程開發的方式,通常會應用在小的Web程序中。但是,由于基于文件和參數的這種腳本方式對于搜索功能來說不方便,而且每個文件處理相應的HTTP請求,所以無法實現腳本的集中管理。
1.2 基于控制器和動作
Web系統通過采用基于控制器和動作的方式能夠服務比較成熟的用戶。基于控制器和動作的開發方式就是先對HTTP進行解析,在通過指定的控制器對HTTP的請求進行分析處理。一般都是采用MVC模式來實現控制器和動作的數據處理。另外,基于控制器和動作的方式與基于文件的方式類似,都是需要采用請求和響應的驅動方式。
1.3 基于組件和事件
基于組件和事件的Web架構也是非常常用的方式,這種方式就是通過組件對一些事件進行處理,也就是把HTTP的訪問按照一定的程序轉換為一個事件,然后再處理這個事件,NET就是這種形式的Web架構。但這種基于組件和事件的方式需要足夠強大的控件和IDE環境,否則就無法實現非常高的開發速度和重復利用的能力。
2 PHP框架開發的關鍵技術
2.1 MVC模式
在Web系統中,可以通過MVC模式,將數據處理、控制、數據顯示分別進行處理,形成模型、控制器、視圖等3個模塊,這3種模塊需要采用控制器進行合成,這種MVC模式能夠非常好地解決Web系統經常出現的纏繞問題,從而使得Web系統的架構更加清晰和順暢。但是MVC模式需要通過跨頁面的PHP來對模型和控制器進行連接,而在PHP完成數據分析后就會收回,無法實現PHP的跨頁面操作,因此要進一步對MVC模式進行優化和技術改進。這種情況下,比較好的辦法就是在對PHP回收之前就將PHP信息存在數據庫中,然后在MVC模式需要PHP時可是隨時從數據庫中調用。但這就需要經常調用數據庫的信息,工作效率非常低。另外一種方式就是采用被動MVC,這種方式的模型與MVC其他結構是沒有關聯的,這就實現了不需要PHP訪問其他頁面,也不需要建立數據庫,大大增加了運行效率。因此,這種被動MVC模式是目前比較有效的MVC模式。
2.2 視圖層
在Web項目開發過程中,前端設計和程序設計很難達到協調一致。這就需要將頁面設計和程序設計進行分別管理,然后在統一協調,這種方式能夠比較好地解決這個問題。一般情況下,PHP中可以利用模塊將顯示和程序進行分別處理,在采用MVC模式時模板一般在視圖層。MVC的模板可以為前端設計提供容易理解的語言,所以前端設計工作就能夠開展HTML模板的制作工作,然后PHP就可以應用這些模板。因此,通常情況下視圖層一般使用Smarty模板,這種模板是一種比較簡單的模板,也可以利用PHP模板進行程序顯示,最終的目標就是將前端設計和程序設計成功進行分離。
2.3 數據訪問層
PHP框架開發中處理好Web系統中的程序和數據庫的分離也是非常重要的。這就需要PHP框架中的數據訪問層技術,這種技術能夠非常好的將程序和數據庫進行分析,也就是通過數據關系映射技術對兩者進行分離,這種技術簡稱ORM技術。數據關系映射技術是把原數據中的程序和數據庫關系映射在數據庫里面,但是由于技術的復雜性,這種映射效率也是非常低的。為降低PHP數據訪問層的復雜性,在PHP框架開發過程中活動記錄模式不斷被開發并已經得到廣泛應用。活動記錄模式就是將每一條數據記錄都包裝為一個對象,這種模式能夠極大地提高數據庫相關程序的開發速度。但是這種方式在處理關聯表時,即使只提取一條記錄,其他與之相關的所有記錄也都會被包裝為對象,這就會造成效率的急劇下降。對于需要頻繁更新數據的情況,由于所有數據都需要被封裝為對象,更新對象屬性后將對象存入數據庫才能完成數據更新。因此,在PHP框架開發的數據訪問層中使用活動記錄模式的效果仍不理想。
對于輕量級的PHP框架,數據庫的操作更加適合采用簡化的數據庫訪問層方式。表數據入口模式與活動記錄模式相比,只是對數據表進行封裝,而不是封裝每一個記錄行。與PHP強大的關聯數組相結合,表數據入口模式能夠高效、靈活地操作大量的數據。由于表數據入口模式不需要對記錄進行封裝,所以說表數據入口操作的是純數據的,而非封裝了數據的對象。表數據入口模式可直接對數據庫進行操作,這使得表數據入口模式具有非常高的數據操作效率。表數據入口模式在數據表層面上封裝數據操作更加簡單實用,適合用在輕量級的PHP框架中;由于復雜性降低,表數據入口模式也可以大大降低用戶的學習成本;表數據入口模型不封裝記錄,因此可以直接操作數據庫,且表數據入口模式中的數據以數組的形式保存,利用PHP關聯數組的優勢,執行效率比活動記錄模式高得多。
結語
隨著計算機技術和PHP技術水平的發展,PHP技術已經能夠非常好的適應Web系統,但是PHP技術在使用過程中仍然需要進一步優化,不斷創新,為Web系統的優化提出更優的方案。如果PHP技術止步不前或者不能夠迅速發展,很有可能被其他更好的技術所替代,也不能很好的服務于Web系統。目前,采用被動MVC技術基本能夠較好地解決Web系統效率低的問題,采用表數據入口模式能夠很好地解決訪問層的問題。通過對PHP技術的不斷研發,可以為Web系統提供更加順暢的腳本服務。
參考文獻
[1]任中方.MVC模式研究的綜述[J].計算機應用研究,2004(10):1-4.
[2]曾楠.基于MVC模式的嵌入式Web設計方法[J].廈門大學學報,2006(2):196-198.
[3]仝戈,張武裝.Smarty在基于MVC框架的Web應用程序開發中的應用[J].科技信息,2009(31):839-840.