$collection = Mage::getModel('catalog/product'); Array ( [0] => getStoreId [1] => getResourceCollection [2] => getUrlModel [3] => validate [4] => getName [5] => getPrice [6] => setPriceCalculation [7] => getTypeId [8] => getStatus [9] => getTypeInstance [10] => setTypeInstance [11] => getLinkInstance [12] => getIdBySku [13] => getCategoryId [14] => getCategory [15] => setCategoryIds [16] => getCategoryIds [17] => getCategoryCollection [18] => getWebsiteIds [19] => getStoreIds [20] => getAttributes [21] => canAffectOptions [22] => cleanCache [23] => getPriceModel [24] => getGroupPrice [25] => getTierPrice [26] => getTierPriceCount [27] => getFormatedTierPrice [28] => getFormatedPrice [29] => setFinalPrice [30] => getFinalPrice [31] => getCalculatedFinalPrice [32] => getMinimalPrice [33] => getSpecialPrice [34] => getSpecialFromDate [35] => getSpecialToDate [36] => getRelatedProducts [37] => getRelatedProductIds [38] => getRelatedProductCollection [39] => getRelatedLinkCollection [40] => getUpSellProducts [41] => getUpSellProductIds [42] => getUpSellProductCollection [43] => getUpSellLinkCollection [44] => getCrossSellProducts [45] => getCrossSellProductIds [46] => getCrossSellProductCollection [47] => getCrossSellLinkCollection [48] => getGroupedLinkCollection [49] => getMediaAttributes [50] => getMediaGalleryImages [51] => addImageToMediaGallery [52] => getMediaConfig [53] => duplicate [54] => isSuperGroup [55] => isSuperConfig [56] => isGrouped [57] => isConfigurable [58] => isSuper [59] => getVisibleInCatalogStatuses [60] => getVisibleStatuses [61] => isVisibleInCatalog [62] => getVisibleInSiteVisibilities [63] => isVisibleInSiteVisibility [64] => isDuplicable [65] => setIsDuplicable [66] => isSalable [67] => isAvailable [68] => getIsSalable [69] => isVirtual [70] => isRecurring [71] => isSaleable [72] => isInStock [73] => getAttributeText [74] => getCustomDesignDate [75] => getProductUrl [76] => getUrlInStore [77] => formatUrlKey [78] => getUrlPath [79] => addAttributeUpdate [80] => toArray [81] => fromArray [82] => loadParentProductIds [83] => delete [84] => getRequestPath [85] => getGiftMessageAvailable [86] => getRatingSummary [87] => isComposite [88] => canConfigure [89] => getSku [90] => getWeight [91] => getOptionInstance [92] => getProductOptionsCollection [93] => addOption [94] => getOptionById [95] => getOptions [96] => getIsVirtual [97] => addCustomOption [98] => setCustomOptions [99] => getCustomOptions [100] => getCustomOption [101] => hasCustomOptions [102] => canBeShowInCategory [103] => getAvailableInCategories [104] => getDefaultAttributeSetId [105] => getImageUrl [106] => getSmallImageUrl [107] => getThumbnailUrl [108] => getReservedAttributes [109] => isReservedAttribute [110] => setOrigData [111] => reset [112] => getCacheIdTags [113] => isProductsHasSku [114] => processBuyRequest [115] => getPreconfiguredValues [116] => prepareCustomOptions [117] => getProductEntitiesInfo [118] => isDisabled [119] => lockAttribute [120] => unlockAttribute [121] => unlockAttributes [122] => getLockedAttributes [123] => hasLockedAttributes [124] => isLockedAttribute [125] => setData [126] => unsetData [127] => loadByAttribute [128] => getStore [129] => getWebsiteStoreIds [130] => setAttributeDefaultValue [131] => getAttributeDefaultValue [132] => setExistsStoreValueFlag [133] => getExistsStoreValueFlag [134] => isDeleteable [135] => setIsDeleteable [136] => isReadonly [137] => setIsReadonly [138] => getIdFieldName [139] => getId [140] => setId [141] => getResourceName [142] => getCollection [143] => load [144] => afterLoad [145] => save [146] => afterCommitCallback [147] => isObjectNew [148] => getCacheTags [149] => cleanModelCache [150] => getResource [151] => getEntityId [152] => clearInstance [153] => __construct [154] => isDeleted [155] => hasDataChanges [156] => setIdFieldName [157] => addData [158] => unsetOldData [159] => getData [160] => setDataUsingMethod [161] => getDataUsingMethod [162] => getDataSetDefault [163] => hasData [164] => __toArray [165] => toXml [166] => toJson [167] => toString [168] => __call [169] => __get [170] => __set [171] => isEmpty [172] => serialize [173] => getOrigData [174] => dataHasChangedFor [175] => setDataChanges [176] => debug [177] => offsetSet [178] => offsetExists [179] => offsetUnset [180] => offsetGet [181] => isDirty [182] => flagDirty ) consider above script $collection = Mage::getModel('catalog/product')->load();//->addAttributeToFilter('sku', array('eq' => 'AKE:ACT336')); print_r(get_class_methods($collection->getPriceModel())); Array ( [0] => getPrice [1] => getBasePrice [2] => getFinalPrice [3] => getChildFinalPrice [4] => getGroupPrice [5] => getTierPrice [6] => getTierPriceCount [7] => getFormatedTierPrice [8] => getFormatedPrice [9] => calculatePrice [10] => calculateSpecialPrice [11] => isTierPriceFixed [12] => isGroupPriceFixed )
Wednesday, June 12, 2013
[magento] get class methods for load() of mage::getModel(catelog/product)
Friday, June 07, 2013
[magento] getCollection()-method
grouped_products = Mage::getModel('Catalog/Product')->getCollection();
print_r(get_class_methods($grouped_products)) ;
Array ( [0] => getCatalogPreparedSelect [1] => getPriceExpression [2] => getAdditionalPriceExpression [3] => getCurrencyRate [4] => getFlatHelper [5] => isEnabledFlat [6] => getNewEmptyItem [7] => setEntity [8] => setStore [9] => _loadAttributes [10] => addAttributeToSelect [11] => addIdFilter [12] => addWebsiteNamesToResult [13] => addStoreFilter [14] => addWebsiteFilter [15] => getLimitationFilters [16] => addCategoryFilter [17] => joinMinimalPrice [18] => getMaxAttributeValue [19] => getAttributeValueCountByRange [20] => getAttributeValueCount [21] => getAllAttributeValues [22] => getSelectCountSql [23] => getAllIds [24] => getProductCountSelect [25] => unsProductCountSelect [26] => addCountToCategories [27] => getSetIds [28] => getProductTypeIds [29] => joinUrlRewrite [30] => addUrlRewrite [31] => addMinimalPrice [32] => addFinalPrice [33] => getAllIdsCache [34] => setAllIdsCache [35] => addPriceData [36] => addAttributeToFilter [37] => addTaxPercents [38] => requireTaxPercent [39] => addOptionsToResult [40] => addFilterByRequiredOptions [41] => setVisibility [42] => addAttributeToSort [43] => applyFrontendPriceLimitations [44] => addCategoryIds [45] => addTierPriceData [46] => addPriceDataFieldFilter [47] => clear [48] => setOrder [49] => getMaxPrice [50] => getMinPrice [51] => getPriceStandardDeviation [52] => getPricesCount [53] => setStoreId [54] => getStoreId [55] => getDefaultStoreId [56] => __construct [57] => getTable [58] => getEntity [59] => getResource [60] => setObject [61] => addItem [62] => getAttribute [63] => addFieldToFilter [64] => addEntityTypeToSelect [65] => addStaticField [66] => addExpressionAttributeToSelect [67] => groupByAttribute [68] => joinAttribute [69] => joinField [70] => joinTable [71] => removeAttributeToSelect [72] => setPage [73] => load [74] => getAllIdsSql [75] => save [76] => delete [77] => importFromArray [78] => exportToArray [79] => getRowIdFieldName [80] => setRowIdFieldName [81] => _loadEntities [82] => toArray [83] => getLoadedIds [84] => _prepareSelect [85] => addBindParam [86] => initCache [87] => getIdFieldName [88] => setConnection [89] => getSelect [90] => getConnection [91] => getSize [92] => getSelectSql [93] => addOrder [94] => unshiftOrder [95] => distinct [96] => fetchItem [97] => getData [98] => resetData [99] => loadData [100] => printLogQuery [101] => addFilterToMap [102] => addFilter [103] => getFilter [104] => isLoaded [105] => getCurPage [106] => getLastPageNumber [107] => getPageSize [108] => getFirstItem [109] => getLastItem [110] => getItems [111] => getColumnValues [112] => getItemsByColumnValue [113] => getItemByColumnValue [114] => removeItemByKey [115] => walk [116] => each [117] => setDataToAll [118] => setCurPage [119] => setPageSize [120] => setItemObjectClass [121] => toXml [122] => toOptionArray [123] => toOptionHash [124] => getItemById [125] => getIterator [126] => count [127] => setCacheKey [128] => getCacheKey [129] => setCacheTags [130] => getCacheTags [131] => getCacheLifetime [132] => getFlag [133] => setFlag [134] => hasFlag )
Tuesday, June 04, 2013
[magento] mage class getModel
$grouped_products = Mage::getModel('Catalog/Product')->getCollection()->addAttributeToFilter('visibility', array('eq' => 4)); allfunction $grouped_products: [0] => getCatalogPreparedSelect [1] => getPriceExpression [2] => getAdditionalPriceExpression [3] => getCurrencyRate [4] => getFlatHelper [5] => isEnabledFlat [6] => getNewEmptyItem [7] => setEntity [8] => setStore [9] => _loadAttributes [10] => addAttributeToSelect [11] => addIdFilter [12] => addWebsiteNamesToResult [13] => addStoreFilter [14] => addWebsiteFilter [15] => getLimitationFilters [16] => addCategoryFilter [17] => joinMinimalPrice [18] => getMaxAttributeValue [19] => getAttributeValueCountByRange [20] => getAttributeValueCount [21] => getAllAttributeValues [22] => getSelectCountSql [23] => getAllIds [24] => getProductCountSelect [25] => unsProductCountSelect [26] => addCountToCategories [27] => getSetIds [28] => getProductTypeIds [29] => joinUrlRewrite [30] => addUrlRewrite [31] => addMinimalPrice [32] => addFinalPrice [33] => getAllIdsCache [34] => setAllIdsCache [35] => addPriceData [36] => addAttributeToFilter [37] => addTaxPercents [38] => requireTaxPercent [39] => addOptionsToResult [40] => addFilterByRequiredOptions [41] => setVisibility [42] => addAttributeToSort [43] => applyFrontendPriceLimitations [44] => addCategoryIds [45] => addTierPriceData [46] => addPriceDataFieldFilter [47] => clear [48] => setOrder [49] => getMaxPrice [50] => getMinPrice [51] => getPriceStandardDeviation [52] => getPricesCount [53] => setStoreId [54] => getStoreId [55] => getDefaultStoreId [55] => getDefaultStoreId [56] => __construct [57] => getTable [58] => getEntity [59] => getResource [60] => setObject [61] => addItem [62] => getAttribute [63] => addFieldToFilter [64] => addEntityTypeToSelect [65] => addStaticField [66] => addExpressionAttributeToSelect [67] => groupByAttribute [68] => joinAttribute [69] => joinField [70] => joinTable [71] => removeAttributeToSelect [72] => setPage [73] => load [74] => getAllIdsSql [75] => save [76] => delete [77] => importFromArray [78] => exportToArray [79] => getRowIdFieldName [80] => setRowIdFieldName [81] => _loadEntities [82] => toArray [83] => getLoadedIds [84] => _prepareSelect [85] => addBindParam [86] => initCache [87] => getIdFieldName [88] => setConnection [89] => getSelect [90] => getConnection [91] => getSize [92] => getSelectSql [93] => addOrder [94] => unshiftOrder [95] => distinct [96] => fetchItem [97] => getData [98] => resetData [99] => loadData [100] => printLogQuery [101] => addFilterToMap [102] => addFilter [103] => getFilter [104] => isLoaded [105] => getCurPage [106] => getLastPageNumber [107] => getPageSize [108] => getFirstItem [109] => getLastItem [110] => getItems [111] => getColumnValues [112] => getItemsByColumnValue [113] => getItemByColumnValue [114] => removeItemByKey [115] => walk [116] => each [117] => setDataToAll [118] => setCurPage [119] => setPageSize [120] => setItemObjectClass [121] => toXml [122] => toOptionArray [123] => toOptionHash [124] => getItemById [125] => getIterator [126] => count [127] => setCacheKey [128] => getCacheKey [129] => setCacheTags [130] => getCacheTags [131] => getCacheLifetime [132] => getFlag [133] => setFlag [134] => hasFlag considered above instance.put it in foreach loop like following. foreach($grouped_products as $grouped_product) $grouped_product: [0] => getStoreId [1] => getResourceCollection [2] => getUrlModel [3] => validate [4] => getName [5] => getPrice [6] => setPriceCalculation [7] => getTypeId [8] => getStatus [9] => getTypeInstance [10] => setTypeInstance [11] => getLinkInstance [12] => getIdBySku [13] => getCategoryId [14] => getCategory [15] => setCategoryIds [16] => getCategoryIds [17] => getCategoryCollection [18] => getWebsiteIds [19] => getStoreIds [20] => getAttributes [21] => canAffectOptions [22] => cleanCache [23] => getPriceModel [24] => getGroupPrice [25] => getTierPrice [26] => getTierPriceCount [27] => getFormatedTierPrice [28] => getFormatedPrice [29] => setFinalPrice [30] => getFinalPrice [31] => getCalculatedFinalPrice [32] => getMinimalPrice [33] => getSpecialPrice [34] => getSpecialFromDate [35] => getSpecialToDate [36] => getRelatedProducts [37] => getRelatedProductIds [38] => getRelatedProductCollection [39] => getRelatedLinkCollection [40] => getUpSellProducts [41] => getUpSellProductIds [42] => getUpSellProductCollection [43] => getUpSellLinkCollection [44] => getCrossSellProducts [45] => getCrossSellProductIds [46] => getCrossSellProductCollection [47] => getCrossSellLinkCollection [48] => getGroupedLinkCollection [49] => getMediaAttributes [50] => getMediaGalleryImages [51] => addImageToMediaGallery [52] => getMediaConfig [53] => duplicate [54] => isSuperGroup [55] => isSuperConfig [56] => isGrouped [57] => isConfigurable [58] => isSuper [59] => getVisibleInCatalogStatuses [60] => getVisibleStatuses [61] => isVisibleInCatalog [62] => getVisibleInSiteVisibilities [63] => isVisibleInSiteVisibility [64] => isDuplicable [65] => setIsDuplicable [66] => isSalable [67] => isAvailable [68] => getIsSalable [69] => isVirtual [70] => isRecurring [71] => isSaleable [72] => isInStock [73] => getAttributeText [74] => getCustomDesignDate [75] => getProductUrl [76] => getUrlInStore [77] => formatUrlKey [78] => getUrlPath [79] => addAttributeUpdate [80] => toArray [81] => fromArray [82] => loadParentProductIds [83] => delete [84] => getRequestPath [85] => getGiftMessageAvailable [86] => getRatingSummary [87] => isComposite [88] => canConfigure [89] => getSku [90] => getWeight [91] => getOptionInstance [92] => getProductOptionsCollection [93] => addOption [94] => getOptionById [95] => getOptions [96] => getIsVirtual [97] => addCustomOption [98] => setCustomOptions [99] => getCustomOptions [100] => getCustomOption [101] => hasCustomOptions [102] => canBeShowInCategory [103] => getAvailableInCategories [104] => getDefaultAttributeSetId [105] => getImageUrl [106] => getSmallImageUrl [107] => getThumbnailUrl [108] => getReservedAttributes [109] => isReservedAttribute [110] => setOrigData [111] => reset [112] => getCacheIdTags [113] => isProductsHasSku [114] => processBuyRequest [115] => getPreconfiguredValues [116] => prepareCustomOptions [117] => getProductEntitiesInfo [118] => isDisabled [119] => lockAttribute [120] => unlockAttribute [121] => unlockAttributes [122] => getLockedAttributes [123] => hasLockedAttributes [124] => isLockedAttribute [125] => setData [126] => unsetData [127] => loadByAttribute [128] => getStore [129] => getWebsiteStoreIds [130] => setAttributeDefaultValue [131] => getAttributeDefaultValue [132] => setExistsStoreValueFlag [133] => getExistsStoreValueFlag [134] => isDeleteable [135] => setIsDeleteable [136] => isReadonly [137] => setIsReadonly [138] => getIdFieldName [139] => getId [140] => setId [141] => getResourceName [142] => getCollection [143] => load [144] => afterLoad [145] => save [146] => afterCommitCallback [147] => isObjectNew [148] => getCacheTags [149] => cleanModelCache [150] => getResource [151] => getEntityId [152] => clearInstance [153] => __construct [154] => isDeleted [155] => hasDataChanges [156] => setIdFieldName [157] => addData [158] => unsetOldData [159] => getData [160] => setDataUsingMethod [161] => getDataUsingMethod [162] => getDataSetDefault [163] => hasData [164] => __toArray [165] => toXml [166] => toJson [167] => toString [168] => __call [169] => __get [170] => __set [171] => isEmpty [172] => serialize [173] => getOrigData [174] => dataHasChangedFor [175] => setDataChanges [176] => debug [177] => offsetSet [178] => offsetExists [179] => offsetUnset [180] => offsetGet [181] => isDirty [182] => flagDirty considered above instance.put it in foreach loop like following. $sigle_product_ids = $grouped_product->getTypeInstance(true); $sigle_product_ids: [0] => getRelationInfo [1] => getChildrenIds [2] => getParentIdsByChild [3] => getAssociatedProducts [4] => addStatusFilter [5] => setSaleableStatus [6] => getStatusFilters [7] => getAssociatedProductIds [8] => getAssociatedProductCollection [9] => isSalable [10] => save [11] => getProductsToPurchaseByReqGroups [12] => processBuyRequest [13] => setProduct [14] => setTypeId [15] => getProduct [16] => getSetAttributes [17] => attributesCompare [18] => getEditableAttributes [19] => getAttributeById [20] => isVirtual [21] => processConfiguration [22] => prepareForCartAdvanced [23] => prepareForCart [24] => processFileQueue [25] => addFileQueue [26] => getSpecifyOptionMessage [27] => checkProductBuyState [28] => getOrderOptions [29] => beforeSave [30] => isComposite [31] => canConfigure [32] => canUseQtyDecimals [33] => getSku [34] => getOptionSku [35] => getWeight [36] => hasOptions [37] => updateQtyOption [38] => hasRequiredOptions [39] => getStoreFilter [40] => setStoreFilter [41] => getForceChildItemQtyChanges [42] => prepareQuoteItemQty [43] => assignProductToOption [44] => setConfig [45] => getSearchableData [46] => checkProductConfiguration [47] => isMapEnabledInOptions $products = Mage::getModel('Catalog/Product')->getCollection()->addAttributeToFilter('sku',array('eq',$result_item2['sku'])); foreach($products as $item) { print_r(get_class_methods($item)); } [0] => getStoreId [1] => getResourceCollection [2] => getUrlModel [3] => validate [4] => getName [5] => getPrice [6] => setPriceCalculation [7] => getTypeId [8] => getStatus [9] => getTypeInstance [10] => setTypeInstance [11] => getLinkInstance [12] => getIdBySku [13] => getCategoryId [14] => getCategory [15] => setCategoryIds [16] => getCategoryIds [17] => getCategoryCollection [18] => getWebsiteIds [19] => getStoreIds [20] => getAttributes [21] => canAffectOptions [22] => cleanCache [23] => getPriceModel [24] => getGroupPrice [25] => getTierPrice [26] => getTierPriceCount [27] => getFormatedTierPrice [28] => getFormatedPrice [29] => setFinalPrice [30] => getFinalPrice [31] => getCalculatedFinalPrice [32] => getMinimalPrice [33] => getSpecialPrice [34] => getSpecialFromDate [35] => getSpecialToDate [36] => getRelatedProducts [37] => getRelatedProductIds [38] => getRelatedProductCollection [39] => getRelatedLinkCollection [40] => getUpSellProducts [41] => getUpSellProductIds [42] => getUpSellProductCollection [43] => getUpSellLinkCollection [44] => getCrossSellProducts [45] => getCrossSellProductIds [46] => getCrossSellProductCollection [47] => getCrossSellLinkCollection [48] => getGroupedLinkCollection [49] => getMediaAttributes [50] => getMediaGalleryImages [51] => addImageToMediaGallery [52] => getMediaConfig [53] => duplicate [54] => isSuperGroup [55] => isSuperConfig [56] => isGrouped [57] => isConfigurable [58] => isSuper [59] => getVisibleInCatalogStatuses [60] => getVisibleStatuses [61] => isVisibleInCatalog [62] => getVisibleInSiteVisibilities [63] => isVisibleInSiteVisibility [64] => isDuplicable [65] => setIsDuplicable [66] => isSalable [67] => isAvailable [68] => getIsSalable [69] => isVirtual [70] => isRecurring [71] => isSaleable [72] => isInStock [73] => getAttributeText [74] => getCustomDesignDate [75] => getProductUrl [76] => getUrlInStore [77] => formatUrlKey [78] => getUrlPath [79] => addAttributeUpdate [80] => toArray [81] => fromArray [82] => loadParentProductIds [83] => delete [84] => getRequestPath [85] => getGiftMessageAvailable [86] => getRatingSummary [87] => isComposite [88] => canConfigure [89] => getSku [90] => getWeight [91] => getOptionInstance [92] => getProductOptionsCollection [93] => addOption [94] => getOptionById [95] => getOptions [96] => getIsVirtual [97] => addCustomOption [98] => setCustomOptions [99] => getCustomOptions [100] => getCustomOption [101] => hasCustomOptions [102] => canBeShowInCategory [103] => getAvailableInCategories [104] => getDefaultAttributeSetId [105] => getImageUrl [106] => getSmallImageUrl [107] => getThumbnailUrl [108] => getReservedAttributes [109] => isReservedAttribute [110] => setOrigData [111] => reset [112] => getCacheIdTags [113] => isProductsHasSku [114] => processBuyRequest [115] => getPreconfiguredValues [116] => prepareCustomOptions [117] => getProductEntitiesInfo [118] => isDisabled [119] => lockAttribute [120] => unlockAttribute [121] => unlockAttributes [122] => getLockedAttributes [123] => hasLockedAttributes [124] => isLockedAttribute [125] => setData [126] => unsetData [127] => loadByAttribute [128] => getStore [129] => getWebsiteStoreIds [130] => setAttributeDefaultValue [131] => getAttributeDefaultValue [132] => setExistsStoreValueFlag [133] => getExistsStoreValueFlag [134] => isDeleteable [135] => setIsDeleteable [136] => isReadonly [137] => setIsReadonly [138] => getIdFieldName [139] => getId [140] => setId [141] => getResourceName [142] => getCollection [143] => load [144] => afterLoad [145] => save [146] => afterCommitCallback [147] => isObjectNew [148] => getCacheTags [149] => cleanModelCache [150] => getResource [151] => getEntityId [152] => clearInstance [153] => __construct [154] => isDeleted [155] => hasDataChanges [156] => setIdFieldName [157] => addData [158] => unsetOldData [159] => getData [160] => setDataUsingMethod [161] => getDataUsingMethod [162] => getDataSetDefault [163] => hasData [164] => __toArray [165] => toXml [166] => toJson [167] => toString [168] => __call [169] => __get [170] => __set [171] => isEmpty [172] => serialize [173] => getOrigData [174] => dataHasChangedFor [175] => setDataChanges [176] => debug [177] => offsetSet [178] => offsetExists [179] => offsetUnset [180] => offsetGet [181] => isDirty [182] => flagDirty
[AWS php5-fpm]install php5-fpm ubuntu
- /cgi
- /cli
- /conf.d
- /mods-available
after execute the following code
sudo apt-get install php5-fpm
a new folder named 'fpm' is added
Saturday, June 01, 2013
[magento]manual-Introduction to Magento
初學者翻譯 contact:M9505506@gmail.com
開發者的Magento-第一部分-介紹Magento
什麼是Magento?他是最強的線上電子商務平台並永遠的改變了電子商務的面貌。 當然,妳已經知道了。妳可能沒有發現到Magento也是一個物件導向的PHP framework,他被用來開發現代化、動態的web application....(誇大的形容詞bla~bla~)。
Magento的MVC結構圖 Magento_MVC.pdf
模組內的程式組織
Magento組織他的單一程式成為分別的模組(Module),在一個典型的PHP model-view-Controller (MVC)應用程式中,所有的Controller將會在一個資料夾,所有的model在另一個,諸如此類。在Magento檔案是基於功能性群組在一起的被稱之為Modules. Magento的code。
Magento的程式碼
舉個例子,妳會找到控制器(Controller), 模型(Models), 協助(helpers), 區塊(blocks)等等,與結帳相關的功能在
你會找到Controller, Models, Helpers, Block 等等,與Magento的google結帳功能相關的功能在
你的程式碼
當你想要客製化或是擴展Magento,而不是直接編輯獨立的程式檔,又或甚至配置你新的Controllers, Models, Helpers, Block等到原始Magento code的裡面,你必須創建你自己的Modules
package(也常被稱為 a Namespace)是一個唯一名稱定義了你的公司或是組織名稱,用意是世上每個Mangento的社群成員,為了避免碰撞到其他的使用者的程式,在創建Modules時,都要使用他們自己的Package name
當創建一個新的Model, 你需要去告訴Magneto about it.這是透過新增一個XML檔案到資料夾下去完成的
有兩個種檔案在這個資料夾,首先開啟一個個別的Module,並且命名在下列這個XML表單裡:
Packagename_Modulename.xml
第二點是一個檔案將開啟多模組從一個Package/Namespace,並且被命名在下列的XML表單裡面:
Packagename_All.xml 附註:他只能被核心團隊使用,同Mage_All.xml
不建議啟動多個模組在一個檔案內,這樣會破壞你models的模組化規則。
基於設定檔的MVC架構
Magento是一個基於設定檔(Configuration-Based)的MVC系統,除此之外也是一個基於慣例的(convention-based)MVC系統
在一個基於慣例的系統,假如你想新增一個Controller或是一個新的Model,你只要創建檔案/類別(file/class), 那系統就會自動抓取
在一個基於設定檔的系統,像是Magento,根據新增檔案/類別到程式庫,你經常需要明確的告訴系統關於新的類別或是新的類別群組,在Magento每個模組有一個檔案名為config.xml,這隻檔案包含全部的Magento 模組的相關設定
在執行時,這些檔案會被讀到一個大型的設定樹狀結構。舉個例子來說,想要使用Models 在你自定義的Module?你需要新增一些程式碼到config.xml,用來告訴Magento你要使用Models,就像是你的Modles 應該是有的基礎類別名稱
<models> <packagename> <class>Packagename_Modulename_Model</class> <packagename> </models>
相同的對於Helper, blocks, Routes 和Controller,事件Handlers,與以及其他的。幾乎所有時間你想要塞進系統的,你都需要改變或新增config file
管控者(Controllers)
在php系統,主要的進入點存在一個php的檔案。在magento裡面沒有不同,那隻檔案是index.php。 但你永遠不用編寫index.php。在mvc系統裡,index.php將會包含 程式碼/呼叫 去編寫做到以下項目
- 監控URL
- 基於一系列規則,驅使這些URL進入Contoller的類別與其下一個Action的方法:這動作稱作路由(Routing)
- 重新實體化Controller類別與呼叫Actioin方法()
這些意指任意的進入點在Mangento(或是其他基於MVC架構的系統)是一個在Controll file的一個方法
參考以下的URL
路徑的每個在server name之後的區塊都會被如下的方式解析
前置名稱-catalog(Front name-catalog)
URL的第一部分是被呼叫的front name。這或多或少,告訴magento那一個模組他自己在Controller裡面。在以下的例子,前置名稱就是catalog,他被對應的模組配置
管控者名稱-category(Controller Name-category)
第二部分的URL告訴Magento應該要用的Controller。每一個有Controller的模組有一個特殊的資料夾,名字叫做'controller',它包含了所有,一個模組要用Controllers。以下是一個例子,關於URL部分的cotegory被轉換到Controller file裡面
檔案裡面看起來像這樣:
class Mage_Catalog_CategoryController extends Mage_Core_Controller_Front_Action { }
動作名稱-view(Action Name-view)
第三個在URL的部分是動作名稱。在範例中,這是一個'view'。代表的是被用以創造Action Method。所以再例子'view'將會被送進viewAction
class Mage_Catalog_CategoryController extends Mage_Core_Controller_Front_Action { public function viewAction() { //main entry point } }