深入理解magento – 第一章 – magento強大的配置系統
翻譯:hailong zhang
[b]第一章 – magento強大的配置系統
[/b]
首先,讓我們寫乙個簡單的外掛程式來看看這個所謂的「配置檔案」長什麼樣。雖然我已經提供的現成的**,但是還是建議你自己建立這個外掛程式,把整個流程走一遍有助於你的理解。
設定外掛程式的目錄結構
大多數magento的系統模組的結構和我們將要構建的外掛程式的結構是一樣的。magento的系統模組在以下目錄
每乙個子目錄都是乙個單獨的模組。這些模組是由magento官方開發的。我們安裝完magento以後,所使用的功能就是來自這些模組。我們自己建立的模組應該放在如下目錄
「packagename」應該是乙個唯一的字串,用來標識你的**。通常人們使用公司名字作為packagename,比如
由於我在做我自己的magento專案,我將使用我自己的網域名稱「alanstormdotcom」。 然後,我們要建立以下目錄結構
你的外掛程式並不一定需要包含以上所有的目錄,但是為了以後開發方便,我們還是在一開始就把目錄建立好。接下來我們要建立兩個檔案,乙個是config.xml,放在etc目錄下面
檔案內容如下
0.1.0
第二個檔案需要在如下位置建立
第二個檔案應該遵循如下命名規則「packagename_modulename.xml」,檔案內容如下
true
local
我們先不管這些檔案是幹什麼的,以後會解釋。建立好這兩個檔案以後,你的模組的骨架就已經完成了。magento已經知道你的模組存在,但是現在你的模組不會做任何事情。我們來確認一下magento確實裝載了你的模組
清空magento快取
在後台管理介面,進入 system->configuration->advanced
展開「disable modules output」
確認「alanstormdotcom_configviewer」顯示出來了
如果你看到「alanstormdotcom_configviewer」,那麼恭喜你,你已經成功建立了你第乙個magento模組!
[b]建立模組邏輯[/b]
我們之前建立的模組不會做任何事情,下面我們來為這個模組加入邏輯
1. 檢查「showconfig」查詢字串是否存在
2. 如果「showconfig」存在,那麼檢查「showconfigformat」查詢字串是否存在
3. 如果「showconfigformat」存在,那麼輸出指定格式的配置資訊,否則輸出預設格式的配置資訊
4. 終止執行流程
首先更改我們的config.xml檔案
...singleton
alanstormdotcom_configviewer_model_observer
checkforconfigrequest
然後建立如下檔案
輸入以下內容
<?php
class alanstormdotcom_configviewer_model_observer === 'true')
}private function setheader() ) ?
$this->request-> : 'xml';
switch($format)
}private function outputconfig()
}?>
好了,**編輯結束。清空你的magento快取,輸入如下url
【譯者注: 根據文中的配置,不難看出任何指向magento的url加了「?showconfig=true」以後,都會輸出同樣的內容,正常的執行流程會被終止。】
[b]配置檔案分析[/b]
開啟上述url,你應該看到乙個巨大的xml檔案。這個檔案描述了當前magento系統的狀態。它列出了所有的模組,資料模型,類,事件,***等等。舉個例子,如果你搜尋如下字串
configviewer_model_observer
你會發現剛剛你建立的那個類被列出來了。magento會解析每個模組的config.xml,並把它們包含在這個全域性配置中。
[b]這個配置檔案有啥用?[/b]
到目前為止,我們所作的事情似乎沒什麼意義,但是這個配置檔案卻是理解magento的關鍵因素。你建立的每乙個模組都會被加到這個配置檔案中,任何時候,你需要呼叫乙個系統功能的時候,magento都會通過這個配置檔案來查詢相應的模組和功能。舉個簡單的例子,如果你懂mvc的話,你應該和「helper class」之類概念的打過交道
$helper_salesrule = new mage_salesrule_helper();
magento抽象了php的類宣告方式。在magento系統中,上面的**等同於
$helper_salesrule = mage::helper('salesrule');
magento將通過以下邏輯來處理這行**
在配置檔案中查詢標籤
在裡面查詢 標籤
在裡面查詢 標籤
例項化從#3找到的類(mage_salesrule_helper)
magento總是通過配置檔案來獲得類名,這個邏輯看起來有些複雜,但這樣做的優點也很明顯,我們可以不需要更改magento的**就能更改magento的核心功能。【譯者注: 在這個例子中,我們可以通過修改配置檔案用我們自己的salesrule_helper類來替換原來那個】這種高度抽象的程式設計方式在php中並不常見,但是它可以讓你清晰的擴充套件或者替換系統的某一部分。
第一章 Magento強大的配置系統
翻譯 hailong zhang magento的配置系統就像是magento的心臟,支撐著magento的執行。這套配置系統掌管著幾乎所有 module model class template etc 它把整個magento系統抽象出來,用乙個配置檔案來描述。這裡的 配置檔案 並不是乙個物理上存...
python第一章筆記 第一章 基礎
參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...
第一章 Linux環境配置
1.修改主機名 vi etc sysconfig network 注意 按,進入編輯模式。按,再輸入 wq 退出儲存 2.修改ip 1 先找到虛擬機器上的閘道器ip 2 輸入命令 vi etc sysconfig network scripts ifcfg eth0 新增紅框部分,gateway輸入...