2

我之前问过这个问题:Codeigniter Class Inheritance between modules (wiredesigns)

我接受了这个问题的答案,它提供了一种通过在应用程序/核心中扩展自定义控制器来做我想做的事情的方法。这种方法似乎很明智,并提供了允许两个模块独立运行的额外好处。

但是,考虑到这一点,我不确定这是这种情况的最佳方法,因为我的产品控制器将需要项目控制器的几乎所有功能,所以这种方法将使我的项目控制器几乎是空的 - 我不确定我喜欢这个。

问题 1

虽然我可能仍然采用之前建议的方法,但我想知道是否有办法在模块之间扩展类,以便我可以权衡这两个选项(请参阅下面的原始问题)

问题2

此外,我认为我应该能够重用我的大部分模型类,我可以看到我可以使用 MY_Model in app/core 方法来做到这一点。但...

a) 有没有办法直接访问其他模块模型?

b) 我可以在模块之间扩展我的模型吗,类似于控制器的问题 1

上一个问题

我的 CI2 应用程序正在使用 wiredesigns 模块化布局。

我在一个名为 modules 的文件夹中有一个名为 item 和 product 的两个模块,如下所示:

/application
    /modules
        /item
        /product

在 Item 中,我有一个名为 item 的控制器,它的开头是这样的。

class Item extends MX_Controller
{
    //code here
}

我需要做什么才能使我的产品控制器在不同的模块中扩展我的项目控制器

4

1 回答 1

1

这里的正确答案是:

你为什么要这样做?将您的逻辑放入库或某种共享文件中,然后实现对该库的调用。

你可以Item在你的文件夹中创建一个抽象类,application/librariesHMVC 内置的自动加载器会自动加载它。没有理由这需要在一个模块中,它绝对不需要是一个控制器。

于 2013-01-06T02:36:13.123 回答