国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【譯】CodeIgniter HMVC模塊擴展使用文檔

teren / 1324人閱讀

摘要:和模塊分離類似,模塊擴展使得模塊變得可便攜的。模塊化意味著模塊化。但是,模塊擴展更進一步,它允許這些模塊互相通信。

CodeIgniter HMVC擴展說明

原文地址:Modular Extensions - HMVC

模塊擴展——HMVC

模塊擴展讓CodeIgniter框架模塊化。模塊是一組獨立的組件(通常有模型、控制器和視圖),它們被分類在應用模塊的子文件夾中,并且能夠直接拖到其他的CodeIgniter應用中。

HMVC的意思是分層模型視圖控制器。

模塊控制器能夠作為普通的控制器或者HMVC控制器使用,它們也能夠被當做小部件幫助你開發一部分視圖。

模塊擴展安裝

安裝純凈的CI框架

設置$config["base_url"]變量

訪問URL /index.php/welcome看到歡迎界面

將模塊擴展的third_party文件拖入application/third_party目錄

將模塊擴展的core文件放入application/core目錄,MY_Controller.php文件可以不放進去,除非你想自己寫一個你自己的控制器繼承

訪問URL /index.php/welcome看到歡迎界面

創造模塊目錄結構application/modules/welcome/controllers

將控制器文件application/controllers/welcome.php移動至application/modules/welcome/controllers/welcome.php

訪問URL /index.php/welcome看到歡迎界面

創建目錄application/modules/welcome/views

11. 將視圖文件application/views/welcome_message.php移動至application/modules/welcome/views/welcome_message.php
12. 訪問URL /index.php/welcome看到歡迎界面

你現在應該擁有了一個正在運行的模塊擴展了。

譯者注:

為了便于大家理解HMVC,我這里展示使用HMVC前和使用HMVC后的目錄結構

使用HMVC前:

使用HMVC后:

安裝提示

第1~3步告訴你如何安裝一個標準的CI框架,如果你已經安裝了,跳至步驟4

第4~5步告訴你普通的CI框架在安裝了MX之后仍然正常運行,它不應該打斷正常的CI框架安裝

第6~8步說明MX和CI控制器一起正常工作,控制器被移入welcome模塊,視圖文件仍在CI的application/views目錄,MX能夠在好幾個地方發現模塊資源,包括應用目錄

第9~11步說明MX和在welcome模塊中的控制器以及視圖一起工作,在application/controllers以及application/views目錄中此時應該沒有文件了。

FAQ

Q: 什么是模塊?我為什么要使用他們?

A: 參見維基百科:

http://en.wikipedia.org/wiki/Module)

http://en.wikipedia.org/wiki/Modular_programming)

http://blog.fedecarg.com/2008/06/28/a-modular-approach-to-web-development)

Q: 什么是模塊化HMVC,為什么我應該使用它?

A: 模塊化 HMVC = Multiple MVC triads

當你需要載入視圖和視圖中的數據的時候,這將是非常有用的。考慮添加一個購物車到一個頁面中,這個購物車需要它自己的控制器,這個控制器要調用一個模型來獲取購物車數據。然后控制器需要將數據載入到視圖中。因此,和在主控制器處理這個頁面和購物車不同,購物車MVC能夠直接在頁面中加載。這個主控制器不需要知道購物車MVC,并且和購物車MVC是完全隔離的。

在CI框架中,我們不能夠在一次請求中調用多個控制器。因此,為了實現HMVC,我們不得不模擬控制器的行為。這用類庫可以做到或者使用這個“模塊擴展HMVC”。

使用一個類庫和一個“模塊擴展HMVC”類不同之處在于:

不需要在HMVC中獲取和使用CI實例

HMVC類存儲在modules目錄中而不是類庫目錄中

Q: 模塊擴展HMVC和模塊分離是一樣的么?

A: 是,也可以說不是。和模塊分離類似,模塊擴展使得模塊變得“可便攜的”。例如,如果你有一個漂亮的自包含MVC文件集,你能夠將你的MVC文件加入到另一個項目中,僅僅通過復制一個目錄就行了。所有文件都在同一個地方而不是散布在modelviewcontroller文件夾。

模塊化HMVC意味著模塊化MVC triads。 模塊分離和模塊擴展讓相關的控制器、模型、類庫、視圖等等文件能夠被打包在模塊子目錄中,并且能夠像一個小型應用那樣使用。但是,模塊擴展更進一步,它允許這些模塊互相通信。你能夠不用通過與http交互得到控制器的輸出內容。

特點

所有的控制器都包含一個$autoload類變量,這個類變量擁有一個運行時優先載入的條目(item)數組。這個功能能夠和 module/config/autoload.php一起使用,然而,使用$autoload變量僅僅在對應的控制器中起作用。

 array("url", "form"),
        "libraries" => array("email"),
    );
}

Modules::$locations可以在application/config.php文件中設置,例如:

 "../modules/",
);

Modules::run()輸出將會被緩存,因此從任何從控制器返回或者輸出的數據將會被捕獲并且返回到調用者。特別的,$this->load->view()能夠在一個普通的控制器中按照你所想的那樣使用,而不用返回任何值。

控制器能夠作為別的控制器的類變量載入,使用語句$this->load->module("module/controller");或者在控制器的名稱和模塊的名稱一致的時候,使用$this->load->module("module");

任何加載的模塊都可以當做一個類庫使用,例如$this->controller->method(),但是加載的模塊擁有自己獨立與調用它的類的模塊和類庫。

所有模塊控制器都能夠通過URL( module/controller/method或者模塊名和控制器名稱一致的時候使用module/method)訪問到。如果你添加了_remap()方法到你的控制器中,你能夠阻止不需要的訪問然后重定向或者發送一個錯誤,這些隨你。

注意:

要使用HMVC功能,例如Modules::run(),控制器必須繼承MX_Controller類。

僅僅使用分開的模塊而不是HMVC功能,控制器可以繼承CodeIgniter類。

你必須在控制器中使用PHP5樣式的構造函數,例如:


構造函數并不是必須的,除非你想在控制器創建的時候載入或者處理什么東西。

所有的MY_extension類庫應該包含(需要)他們同等的MX類庫文件,并且繼承它們同等的MX_class

每一個模塊可以包含一個config/routes.php文件,在文件中定義該模塊的路由和默認控制器:


控制器可以從application/controllers子目錄中載入。

控制器也可以從module/controllers子目錄中載入。

資源能夠能夠跨控制器載入,例如: $this->load->model("module/model");

Modules::run()被設計成返回部分視圖,并且它將會從控制器返回緩存輸出(一個視圖)。使用modules::run語法是一個URI類型的片段字符串和無限的變量。


在控制器里邊調用一個模塊控制器,你可以使用$this->load->module()或者Modules::load(),PHP5的方法鏈也可以用在任何被MX加載的對象中,例如: $this->load->library(‘validation’)->run()

載入模塊的語言文件推薦使用載入方法,該方法將會傳遞一個激活的模塊名稱到一個語言實例,例如:$this->load->language("language_file");

PHP5的spl_autoload特性允許你自由地擴展你的控制器、模塊和來自application/core或者application/libraries基本類的的類庫,不需要考慮顯式包含他們。

類庫加載器也被更新從而適應一些CI的特性,例如:類庫別名能夠和模塊別名一樣的方式接受,并且從模塊配置目錄中載入配置文件作為類庫的參數(例如:form_validation.php),這項特性也被加了進來。

$config = $this->load->config(‘config_file’),返回已加載的數組到變量中。

模塊和類庫也能夠從他們各自的應用目錄的子目錄中加載。

在用MX使用表單驗證時,你將需要繼承CI_Form_validation類,如下所示:


在將目前的控制器作為$CI變量賦值給表單驗證類庫之前。這將讓你的回調函數正常工作。

load->library("form_validation");
        $this->form_validation->CI =& $this;
    }
}
部分視圖

使用模塊作為視圖的一部分在一個視圖中使用是很容易的:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21264.html

相關文章

  • 】PHP:40+開發工具推薦

    摘要:今天,就為開發者介紹個方便的工具。對開發者來說,是一個非常有用的工具,它提供了超過個有用的函數。該工具檢查輸入源代碼和報告任何違反給定的標準。框架是一個開發的工具。它側重于安全性和性能,絕對是最安全的開發框架之一。 PHP是為Web開發設計的服務器腳本語言,但也是一種通用的編程語言。超過2.4億個索引域使用PHP,包括很多重要的網站,例如Facebook、Digg和WordPress。...

    dreambei 評論0 收藏0
  • 你不可不知道的20個優秀PHP框架

    摘要:每一個開發者都知道,擁有一個強大的框架可以讓開發工作變得更加快捷安全和有效。官方網站是一款老牌的框架,現在穩定版本已經是了。官方網站是由最大的社區之一的管理開發的,也是一個開源的框架。 對于Web開發者來說,PHP是一款非常強大而又受歡迎的編程語言。世界上很多頂級的網站都是基于PHP開發的。 每一個開發者都知道,擁有一個強大的框架可以讓開發工作變得更加快捷、安全和有效。在開發項目之前選...

    zombieda 評論0 收藏0
  • CodeIgniter連接到微軟SQLSERVER2012數據庫

    摘要:版本版本版本修改下的修改下的修改下的修改下的,為私有,不能作為表名方法不能刷新主鍵,否則會報錯方法的模型,面向對象的鏈式寫法是,模塊為勾選,為勾選域名虛擬主機配置,添加到的最后打開激活在配置對應好版本為文檔添加微軟的連接插件安裝擴 1,PHP PHP版本5.3.3 Apache版本 2.1.5 MSSQL版本 2012 修改database.php下的$db[default][dbd...

    darry 評論0 收藏0
  • CodeIgniter筆記

    摘要:移除中的開啟的模塊,在項目目錄中新建文件,添加如下內容獲取超級對象使用輔助函數一般情況下,輔助函數位于或者目錄目錄下。模型命名規則類名的第一個字母必須大寫,其余部分小寫。文件名和類名應該一致。 移除URL中的index.php 開啟Apache的mod_rewrite模塊,在項目目錄中新建.htaccess 文件,添加如下內容 RewriteEngine On RewriteCond ...

    Michael_Lin 評論0 收藏0
  • Codeigniter 4.0-dev 版源碼學習筆記之一——前言以及 CI 4 預覽

    摘要:版權聲明可轉載,但不論任何媒體都需要在轉載前與本人溝通,并在轉載時注明出處。的各個核心模塊以模塊名為目錄名分別存儲在這個目錄下。下一篇文章會涉及到和。此文可以轉載,但轉載前需要發郵件到進行溝通,未溝通的均視作侵權。 寫在前面: 為什么選擇開發過程中的 CI 4 作為源碼解讀版本:(1)首先我選 CI 是因為它之前的穩定版都是相對比較輕量小巧的,而且可以認為是簡單的。(2)為什么沒有選...

    MSchumi 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<