有可能使codeigniter与另一个框架一起工作吗?

时间:2010-04-22 19:30:21

标签: php api codeigniter frameworks

情况就是这样。

我的客户(也是程序员)要求我开发一个包含很多功能的地址簿(带有mysql数据库)。然后他可以与我为他提供的一些课程方法互动。有点像API。

情况是地址簿应用程序越来越大,我觉得使用CodeIgniter用MVC编写它的方式更好。

我想知道我是否可以使用codeigniter,然后以某种方式让他访问控制器方法。

例如。在控制器中,您可以使用Web浏览器调用一些函数。

public function create_contact($information) {..}

public function delete_contact($id) {..}

public function get_contact($id) {..}

但是,这些只能从网络浏览器调用。如何让我的客户端像API一样访问这些功能?

然后在他自己的应用程序中,他可以使用:

$result = $address_book->create_contact($information);
if($result) {
    echo "Success";
}

$contact = $address_book->get_contact($id);

通过这种方式,我的控制器方法正在处理模型的输入和输出。没有视图,因为我只需要返回模型中的数据/结果。他可以使用我的“API”功能。

这可能吗?

因为我只知道如何使用webbrowser访问控制器方法。我想这不是他使用标题(位置)来访问它们的选项。

欢迎所有提出建议的建议!甚至其他让我使用CI开发的方法。也许已经有关于这种跨框架协作的最佳实践?

感谢

1 个答案:

答案 0 :(得分:3)

MVC似乎已经分散在其定义中。我将提供的这个定义对你来说应该是理想的。

模型是您构建应用程序业务端的位置。 create_contact,delete_contact和get_contact等操作属于模型层。模型层构建应用程序API,应完全独立。

将控制器视为用户的木偶操纵者。控制器接受用户输入 - 验证,卫生以及其他地方可能做的事情 - 并调用您已在模型层中设置的API。此外,控制器然后指定要使用的视图 - 无论您的表示层是复杂还是简单。

表示层通常不是难点。只要您在视图中仅使用读取操作,就应该没问题。

为了澄清,如果用户想要创建新联系人,控制器可能需要一个名为create_contact的方法来接受适当的输入。但是,创建联系人的实际操作必须在模型层中完成。这将允许您的其他开发人员通过加载您已经设计为独立实体的模型,在完全不同的应用程序中重用相同的操作。