2013-09-22 238 views
3

我們目前正在開發電子商務網站。我們有一個公共和管理模塊。如何防止重複編碼

有時我們在兩個模塊中都提供相同的功能,如查看產品或創建訂單。但是也有一些功能存在於公共或管理員中,例如添加產品(這是管理員)。

我們的問題是常見的功能導致邏輯重複。我們需要在兩個模塊中實現它。

解決該問題的一種方法是利用圖層。所以我們所做的是將共同的邏輯推入模型中。但是,就像一個還在複製代碼如下所示的控制器:

public function invoice() { 
    $this->Invoice->create(); 

    $this->Invoice->setCustomer($this->getCurrentUser); 

    $invoice_items = // get list of items from post 
    $this->Invoice->setItems($invoice_items); 

    $this->Invoice->save(); 
} 

我的問題是,是明智創建一個web服務,將封裝這一邏輯,你就必須從管理和公共模塊調用它..

Magento如何實施公共和管理面板。它如何管理它的邏輯......

回答

0

我會建議你不要這樣做。從你的問題來看,你指的是什麼樣的「邏輯」並不完全清楚,但從你的例子來看似乎並不複雜。一般來說,業務邏輯應該在代碼的模型,控制器或助手部分編碼。只要您在擴展的主要xml文件中正確設置依賴關係,它甚至可以駐留在單獨的擴展中。

看來你可能會從將你的邏輯放在助手類中受益。默認的助手文件位於/app/code/community/company/extension-name/Helper/Data.php。

Mage::helper('extension-name')->getLogic() 

或者可以調用從視圖中的相同的輔助方法(PHTML文件)這樣的:然後,你可以通過使用此片的代碼的任何地方調用輔助方法在後端(方框,模塊,或控制器) :

$this->helper('extension-name')->getLogic()