用PHP開始你的MVC (一)整合你的站點入口
這是一篇介紹如何用php來實現MVC模式開發的檔案。關於MVC模式的技術文章網上隨處可以,所以這篇檔案將不再講述這種模式的優缺點(實際
上是我說不清楚),子講他的php技術實現。並且在以後的系列文章中也是以講技術為主。
一、實現統一的網站入口(在MVC中呼叫Controler層的方法,也就是控制層)
大家也許經常在網上看到這樣的路徑(http://www.aaa.com/aaa/bbb/aaa?id=5),讓人不解,這樣的網站的實現方式有幾種可能性:
1、隱藏檔案的副檔名,對這種做法的好處,眾說紛紜,不過個人覺得沒有必要;
2、用了網站的重定向規則,實現虛擬路徑;
3、強制檔案解析的方式,實現虛擬路徑。
用第2/3種方法可以實現網站的統一介面,合理的整合網站,更好的體現網站的安全性和架構,用這兩種方式的網站大多是使用“MVC”模式構
建和實現的。
下面是一個例子
訪問路徑如下:
....../test/*******/Bad ....../test/*******/Good (其中的"******"可以用任何字串替換,"......."是你的web路徑) |
檔案的目錄結構如下
|-- .htaccess |-- test |-- Application.php |-- Controler/GoodControler.php |-- Controler/BadControler.php 注意 檔案".htaccess",在windows下不能直接建立的,可以在命令列模式下建立. |
檔案0:(.htaccess)(這個檔案是更改apache的配置方式用的)
<files test> forcetype application/x-httpd-php </files> |
檔案1:(test.php)
<?php /*------------------------------------- * test.php * * 作為你的網站的入口的檔案 * 用來初始化和入口 * 呼叫執行Controler的呼叫 * -------------------------------------*/ require "Application.php"; $aa = new Application(); $aa->parse(); $aa->go(); ?> |
檔案2:(GoodControler.php)
<?php /*------------------------------------- * GoodControler.php * * 用來控制 url=/test/Good 來的訪問 * -------------------------------------*/ class GoodControler{ /* * 控制類的呼叫方法,唯一的報漏給外部的介面 */ function control(){ echo "this is from GoodControler url=*********/test/Good"; } } ?> |
檔案3:(BadControler.php)
<?php /*------------------------------------- * BadControler.php * * 用來控制 url=/test/Bad 來的訪問 * -------------------------------------*/ class BadControler{ /* * 控制類的呼叫方法,唯一的報漏給外部的介面 */ function control(){ echo "this is from GoodControler url=*********/test/Bad"; } } ?> |
檔案4:(Application.php)
<?php /*------------------------------------- * Application.php * * 用來實現網站的統一入口,呼叫Controler類 * -------------------------------------*/ class Application{ //用來記錄所要進行的操作 var $action; //controler檔案的路徑名 var $controlerFile; //controler的類名 var $controlerClass; function Application(){ } function parse(){ $this->_parsePath(); $this->_getControlerFile(); $this->_getControlerClassname(); } /* * 解析當前的訪問路徑,得到要進行動作 */ function _parsePath(){ list($path, $param) = explode("?", $_SERVER["REQUEST_URI"]); $pos = strrpos($path, "/"); $this->action = substr($path, $pos+1); } /* * 通過動作$action,解析得到該$action要用到的controler檔案的路徑 */ function _getControlerFile(){ $this->controlerFile = "./Controler/".$this->action."Controler.php"; if(!file_exists($this->controlerFile)) die("Controler檔名(".$this->controlerFile.")解析錯誤"); require_once $this->controlerFile; } /* * 通過動作$action,解析得到該$action要用到的controler類名 */ function _getControlerClassname(){ $this->controlerClass = $this->action."Controler"; if(!class_exists($this->controlerClass)) die("Controler類名(".$this->controlerClass.")解析錯誤"); } /* * 呼叫controler,執行controler的動作 */ function go(){ $c = new $this->controlerClass(); $c->control(); } } ?> |
相關推薦
用PHP開始你的MVC (一)整合你的站點入口
這是一篇介紹如何用php來實現MVC模式開發的檔案。關於MVC模式的技術文章網上隨處可以,所以這篇檔案將不再講述這種模式的優缺點(實際上是我說不清楚),子講他的php技術實現。並且在以後的系列文章中也是以講技術為主。一、實現統一的網站入口(在MVC中呼叫Controler層的方法,也就是控制層)大家也許經常在
用PHP開始你的MVC(三)實現你的Model層
三、實現你的Mode層Model層,就是MVC模式中的資料處理層,用來進行資料和商業邏輯的裝封,進行他的設計的時候設計到三個個概念:------Model類。是實體類。用來儲存資料庫表格的中一條記錄的所有欄位的資料。並且可以驗證這條記錄資料的完整性。------ModelMa
用PHP開始你的MVC (四)實現View層
MVC模式的view層的主要任務是進行頁面的和結果的顯示工作,在php的實現過程中,主要是體現為一個模板(使用模板,可以達到php程式碼和html程式碼分離的目的,這樣程式碼和頁面的維護就方便多了,便於管理和頁面的更換,可以真正的劃分程式設計師、美工的分工)的解析過程:首先,
Java、C、C+ +、PHP、Python分別用來開發什麼?一篇文章告訴你!
我自己是一名大資料架構師,目前辭職在做線上教育大資料講師,每天都會直播分享免費公開課,大家可以加群參加。以及我自己整理了一套最新的大資料學習系統教程,包括Hadoop,資料探勘,資料分析。送給正在學習大資料的小夥伴!這裡是大資料學習者聚集地,歡迎初學和進階中的小夥伴!加QQ群:5849001
一步一步教你用PHP+MySql搭建網站 No.0 準備工作
新開一個系列教程吧,這次是講如何用PHP+MySQL搭建網站。 之前一直有想過搭建自己的個人網站,然後上週通過阿里雲申請的域名和空間都通過稽核了,於是就開始研究如何用PHP+MYSQL搭建網站,研究了差不多兩週,總算搞定了一個小型的blog類的網站。當然,整個過程是通過學習
一步一步教你用PHP+MySql搭建網站 No.1 主頁&資料庫連線
這一章節我們來看使用者輸入網頁後的主介面。 一般來說,預設主頁都是index點xxx,比如 index.php, index.html , index.jsp等等。我們來看一下我們的index.php吧 index.php 提醒: 在<?php?>的兩端,不要
記一次安裝多版本php的四個雷區,你踩著了嗎
path start cgi 命令執行 mysq -c tool port 一鍵 記一次安裝多版本的php的四個雷區,你踩著了嗎 需求:公司需要在同一臺服務器上安裝不同版本的php,而這一臺的服務上已經安裝了php.7.1,現需要同
爬蟲高玩教你用Python每秒鐘下載一張高清大圖,快不快?
on() print async tpc 多說 xxx ima 所有 mkdir 如果爬蟲需要展現速度,我覺得就是去下載圖片吧,原本是想選擇去煎蛋那裏下載圖片的,那裏的美女圖片都是高質量的,我稿子都是差不多寫好了的,無奈今天重新看下,妹子圖的入口給關了。 至於
用一句話證明你是一名程式設計師——燙燙燙燙湯湯湯湯湯
程式設計師的世界,給大家來普及下。當今最熱門的職業屬程式設計師莫屬。網際網路發展的迅速,市場的需求很大。薪資待遇高。儘管這樣,程式設計師也是很招黑的,說程式設計師禿頭悶騷修電腦的標配!黑歸黑,當真你就輸了! 如果用一句話證明你是一名程式設計師 來瞅瞅大眾網友怎麼說
有一天你會用小程式做生意
微信連線了九億使用者,你在用微信,你的客戶也在用微信。 什麼是小程式? 無需下載即可使用的輕應用 實現商家與使用者“觸手可及”的夢想 只需要“掃一掃”或“搜一下” 體現“用完即走”的理念 為什麼要做小程
PHP到底有多牛?你所知道的網站都在用它
PHP到底有多牛?你所知道的網站都在用它 提起PHP,很多人的第一印象就是網站開發,確實,在網站開發方面,PHP難逢對手,當之無愧是“世界上最好的語言”。 有資料顯示,目前全球5000萬網際網路網站中,有60%以上使用著php技術,在國內,80%網際網路網站使用php開發。 不僅如此,人
富貴教你用PHP爬取掘金文章
前言 最近忙完了專案比較空就打算深入學習一些關於爬蟲的知識,以前讀書的時候就喜歡用爬蟲去爬一些學習網站(波多野**老師)。寫這篇部落格是想對之前學習的一些爬蟲知識做一個梳理和交流。希望有大佬指出不足,幫我成長。 新手村任務 下面這些是我2018年這半年業餘時間研究的一些小東西,比較適合剛
手把手教你搭建與整合SSM框架(文末附原始碼)(Spring MVC + Spring + MyBatis)
目錄 1.匯入jar包 2.專案目錄總覽 3.配置Spring IoC容器 4.連線資料庫配置 5.整合mybatis環境 5.1配置對映器 5.2建立Mapper介面 5.3建立資料庫表和實體類 6.整合Spring MVC 6.1配置&nb
【PHP常見面試題 PHP框架基礎-MVC框架基本工作原理】談談你對MVC的認識,介紹幾種目前比較流行的MVC框架。
一、考點 1、MVC工作原理 1)工作原理 Model - 資料模型層:通常情況下對資料進行加工,進行一些其他的處理,與資料相關的一些操作都在 Model層 操作。 View - 檢視層:跟使用者進行互動的一些介面上的東西。 Controller - 控制層
Oracle進階之你可能會用到的命令(一)
不管你天天使用Oracle還是剛接觸Oracle,下面的這些命令或許在你忘記了的時候能幫忙快速找回來。 1. 檢視當前使用者 show user; 2. 去掉重複記錄的關鍵詞 di
請用一句話來形容你是一名優秀的程式設計師,網友:神回覆!
還記得雙11期間,杭州一位快遞員凌晨在某小區投擲快遞,看到一位可疑的男子,十分邋遢,並且在電動車旁逗留,誤認為是小偷,兩人隨即發生撕扯,後來快遞員細問才知道,原來“小偷”只是剛加班回來的程式設計師。程式猿的程式碼是精準的,生活是隨意的,讓我們看看網友們是怎麼用一句話來形容自己是一名優秀的程式
讓我用個經典小例子給你捋一捋 遞迴——記憶化搜尋——動態規劃 三者之間的關係
0 1 2 3 5 其實下面三個方法都是自下而上,只不過用遞迴的話,如果用二叉樹畫出遞迴的結構圖就會發現,出現了很多重複運算,比如說fib(100)=fib(99)+fib(98)。 記憶化搜尋通過新增一個列表容器來記錄已經計算過的內容,這樣就避免了重複運算,提高了效率,但是很明顯有空間換時
【孤雁是天的寂寞】生命那是一場恢弘的等待,唯一的結局只是在那霏霏中睡去。就算全世界都否定你,你要相信你自己,當你放下面子賺錢的時候,說明你已經懂事了。當你用錢賺回面子的時候,說明你已經成功了。當你用面子可以賺錢的時候,
生命那是一場恢弘的等待,唯一的結局只是在那霏霏中睡去。就算全世界都否定你,你要相信你自己,當你放下面子賺錢的時候,說明你已經懂事了。當你用錢賺回面子的時候,說明你已經成功了。當你用面子可以賺錢的時候,...
教你怎麼用php將微信與第三方平臺打通(建議使用測試號 【功能多】)
新建一個php檔案 寫上如下程式碼<?php echo $_GET["echostr"]; ?> 然後上傳到阿里雲主機 或其他都可以 最後就可以配置成功了下面這段程式碼 是安全驗證 相當於漏洞補丁驗證訊息的確來自微信伺服器private
手把手教你用matlab做深度學習(一)- --CNN
1.使用深度學習做目標檢測 上一篇部落格已經講解了怎麼用matlab匯入資料。 [trainingImages,trainingLabels,testImages,testLabels] = helperCIFAR10Data.load('cifar10Data');