情况就是这样。
我的客户(也是程序员)要求我开发一个包含很多功能的地址簿(带有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开发的方法。也许已经有关于这种跨框架协作的最佳实践?
感谢
答案 0 :(得分:3)
MVC似乎已经分散在其定义中。我将提供的这个定义对你来说应该是理想的。
模型是您构建应用程序业务端的位置。 create_contact,delete_contact和get_contact等操作属于模型层。模型层构建应用程序API,应完全独立。
将控制器视为用户的木偶操纵者。控制器接受用户输入 - 验证,卫生以及其他地方可能做的事情 - 并调用您已在模型层中设置的API。此外,控制器然后指定要使用的视图 - 无论您的表示层是复杂还是简单。
表示层通常不是难点。只要您在视图中仅使用读取操作,就应该没问题。
为了澄清,如果用户想要创建新联系人,控制器可能需要一个名为create_contact的方法来接受适当的输入。但是,创建联系人的实际操作必须在模型层中完成。这将允许您的其他开发人员通过加载您已经设计为独立实体的模型,在完全不同的应用程序中重用相同的操作。