Codeigniter HMVC和Datamapper的兼容性问题

3
我刚接触Codeigniter框架,考虑在我的新项目中使用它。我需要这两个扩展。在深入研究之前,我想知道是否有人已经使用过它们,并能够友好地提供一些见解,告诉我它们在一起使用时是否存在任何兼容性问题。
模块化扩展-HMVC http://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home Datamapper ORM http://datamapper.exitecms.org/ 我相信有很多人会同时使用这两个扩展,因为它们实际上非常受欢迎。所以,很多人将从这个帖子中受益。
非常感谢你们所有人。
2个回答

1
首先要说明的是:我使用过HMVC扩展,但没有使用Datamapper ORM。
就我所看到的情况来说,这两个扩展有着不同的目标。原则上,我看不出有任何冲突。
HMVC扩展在你的视图由多个子视图组成时非常有用。它允许你将应用程序模块化,以便可以从多个控制器操作的输出构建视图。
Datamapper ORM允许你直接将数据库中的数据映射到应用程序中的PHP对象上。它省去了编写SQL查询从数据库中提取行并在应用程序中填充对象的繁琐过程。你可以定义模型从哪个表加载数据,以及它与应用程序中其他模型的关系。Datamapper会在后台生成执行CRUD操作的查询。
HMVC关注的是你如何组织应用程序的结构。Datamapper ORM关注的是如何构建模型。我不明白Datamapper会如何阻止你使用HMVC,反之亦然。

非常感谢您的回复。我预计它们一起使用时会出现兼容性问题的原因是我发现了这个网页:http://codeigniter.com/wiki/HMVC_for_DMZ_Modular_Separation/ 这似乎是另一个扩展,由某人编写,也是为了在Codeigniter中进行HMVC,并且它确实与datamapper存在一些问题(尽管是旧版本)。 - bobo
啊,我明白你的意思了。在模块中自动加载模型时,并没有搜索模块的模型目录。当使用 HMVC 时,我总是在应用程序级别定义我的模型,然后在所有模块之间共享它们。你打算在应用程序或模块级别定义你的模型(或两者结合)吗? - Stephen Curran
我知道 - 通过在应用程序级别而不是模块级别上定义模型,这意味着该模块无法移植到其他应用程序。但我从来没有真正发现模块的可移植性有多有用。我只使用HMVC将视图分解为多个子视图,每个子视图都有自己的控制器操作。 - Stephen Curran

1

非常感谢您的回复。我想问一下,在您之前的项目中,是否曾经使用过Modular Extensions - HMVC和Doctrine ORM,并且没有遇到任何兼容性问题? - bobo
我在我的项目中没有使用过 HMVC 和 Doctrine。 - Shivaas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接