PHP中MVC架構之檔案入口執行個體詳解_PHP教程

來源:互聯網
上載者:User
本文章來介紹了php的新知識關於PHP中MVC架構之檔案入口用法,有需要瞭解的朋友可以參考一下本文章。

MVC的檔案入口怎麼寫,完全是根據程式員的引擎設計來做,也是根據程式員喜好來做,但我們的最終目的卻是通過簡單的代碼引入引擎來處理其它的事務,就像我們要開車一樣,我們首先要點火,發動機才能發動一樣。在寫入口之前我們需要考慮幾個方面,URL解析方式,需要哪些使用者參數或系統需要帶入,使用者參數需要更改的地方,我們需要統一用一個檔案來引入,檔案可以是xml,也可以的PHP,也可以是其它的想到的方法,但keheng這裡用的卻是php裡面數組形式引入,這種形式貌似寫緩衝的形式,從資料庫讀取了資料再產生一個php檔案,再require此檔案即可。當然,也可以在寫引擎的過程中再寫入口也行,只要能達到我們的目的就行。

就我們平常見到的檔案入口來看,檔案入口一般分為單檔案入口和多檔案入口,當然也有可能有其它的檔案入口沒見過。

單檔案入口當然是指網站訪問始終都是有訪問index.php這個檔案,但關係到裡面顯示的內容卻是根據背景參數來載入,

比如:http://www.XXXX.com/index.php? Conttoller=index&action=show&id=1

這裡的Conttoller就是我們需要顯示的頁面,通過擷取Conttoller的值來確實我們的MVC載入的是哪個模型,顯示的是哪個視圖,一般都需要建立一個專用的路由類來進行地址的判斷。action則是此模型的哪個操作,比如是顯示資料,或者添加資料,或者顯示文章類的,至於ID的作用是什麼這裡就不用說了。

多檔案入口當然是指網站裡面除了index.php檔案名稱,還有其它檔案訪問,比如同一個網站下有index.php,about.php………..等。

但還有另外一種URL方式http://localhost/control/ index / action/1,這種方式並未指定訪問這個目錄下的哪個檔案,一般預設的當然是index.php或者index.html,個人認為這種方式不管是程式製作或維護都較麻煩點,所以現在也很少見到有這種形式的URL,以前看過有關SEO的文章,貌似入口為這種類型的對SEO最佳化不太好(keheng個人愚見)。其實是不是不太好我們平常就可以觀察到,比如我們百度下,隨便輸入一個關鍵詞,在開頭幾頁基本不到類似的地址被搜尋出來。在SEO最佳化中就有一條為地址url的層級結構保持在三層內為宜。我們做WEB項目前當然要考慮到這些問題了。

以下為網上下載的一個模板的檔案入口:

代碼如下 複製代碼

define('UPLOAD_PATH', './Uploads/');

define('VERSION', 'v2.1 Released');

define('UPDATETIME', '20120323');

define('APP_NAME', 'myphp');

define('APP_PATH', './myphp/');

define('APP_LANG', true);

define('APP_DEBUG',false);

define('THINK_PATH','./Core/');

require(THINK_PATH.'/Core.php');

它的核心是THINK,入口指定了程式版本,更新日期等,真正的處理檔案卻是在Core.php檔案裡。由於PHP模板都是開源的,個人認為可能有些網路公司為了不讓別完全搞清楚他的產品,故意在PHP代碼裡面多層次調用,來迷惑想學習他代碼思路的程式員,讓程式員跟來跟去跟的一頭霧水,其實我就這樣過,也可能是自己閱曆不夠造成的。

代碼如下 複製代碼


require_once './include/common.inc.php';

$views->display('index.html');

?>

載入了引擎檔案後,在告訴$views類顯示哪一個視圖檔案,這樣確實是直觀很多,但我個人不怎麼喜歡這種方法,雖然如果修改檔案模板直接在對應的檔案進行修改,感覺不太好控制,而且貌$views到最後沒關閉,佔著記憶體。

看了些別人的入口後keheng自己也有了入口的思路。不管是單檔案還是多檔案,全都用這入口,總之網站根目錄下檔案內容全都是這個

代碼如下 複製代碼


require 'command/config.php';

require 'command/app.php';

app::run($config);

?>

實際上我的對像模型是在config.php裡設定好的

代碼如下 複製代碼


$config['Templates'] = array( //名稱記得全轉為小寫

‘keheng’ => array('keheng.php',0),

' index ' => array('index.php',0),

);

?>

分析地址調用相應的視圖,這樣我就可以專門用一個檔案來進行模型與視圖對應設定,在用的時候即可用require 'command/config.php';載入這個數組。

可能有高人會認為這種方法貌似不太好,可能是keheng見識太少閱曆不夠或技術還不夠,現在還沒想到更好一些的方法

http://www.bkjia.com/PHPjc/631285.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631285.htmlTechArticle本文章來介紹了php的新知識關於PHP中MVC架構之檔案入口用法,有需要瞭解的朋友可以參考一下本文章。 MVC的檔案入口怎麼寫,完全是根據程...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.