gpt4 book ai didi

magento - 如何防止重复代码

转载 作者:行者123 更新时间:2023-12-02 17:47:30 25 4
gpt4 key购买 nike

我们目前正在开发一个电子商务网站。我们有一个公共(public)和管理模块。

有时,我们在两个模块中提供相同的功能,例如查看产品或创建订单。但也有一些功能存在于公共(public)或管理中,例如添加产品(在管理中)。

我们的问题是通用功能会导致逻辑重复。我们需要在两个模块中实现它。

解决该问题的一种方法是使用图层。所以我们所做的就是将通用逻辑转移到模型中。然而, Controller 仍然复制代码,如下所示:

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 服务是否明智,您只需从管理和公共(public)模块中调用它。

Magento 如何实现公共(public)面板和管理面板。它如何管理其逻辑..

最佳答案

我建议你不要这样做。从您的问题来看,尚不清楚您指的是哪种“逻辑”,但从您的示例来看它似乎并不太复杂。一般来说,业务逻辑应该在代码的模型、 Controller 或帮助器部分中进行编码。只要您在扩展的主 xml 文件中正确设置依赖项,它甚至可以驻留在单独的扩展中。

看来您可以通过将逻辑放在辅助类中而受益。默认帮助程序文件位于/app/code/community/company/extension-name/Helper/Data.php 下。然后,您可以使用这段代码在后端的任何位置( block 、模块或 Controller )调用辅助方法:

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

或者您可以从 View (phtml 文件)调用相同的帮助器方法,如下所示:

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

关于magento - 如何防止重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com