我对CodeIgniter和一般的MVC理念都比较陌生,所以在我养成任何坏习惯之前,我正试图澄清这一点。
我有一个注册的应用程序。用户。目前,流程是这样的:
正如您所看到的,我尝试将尽可能多的逻辑移动到模型中。我无法重新定位的唯一逻辑是表单验证,因为CodeIgniter似乎强迫您将其放入Controller中。 (除非有人知道解决方法)
这是我应该使用CodeIgniter或一般的MVC开发的方式吗?
提前感谢您的帮助。
答案 0 :(得分:6)
您将发现CI具有灵活性,允许您以多种不同方式组织事物。我的感觉是模型应仅保留用于直接与数据库通信的函数。我不会将它们用于一般逻辑。我明白为什么你不想用逻辑填满你的控制器。我的解决方案是创建自己的库来包含逻辑,然后从控制器调用。这里有关于如何创建自己的库的信息: http://codeigniter.com/user_guide/general/creating_libraries.html
对于用户身份验证,我创建了一个名为auth_library.php的库,其中包含登录,注册等控制器使用的函数。以同样的方式,您可以创建一个auth_model,其中包含与db连接的函数。
您可能也对这一系列教程感兴趣: http://www.phpandstuff.com/articles/codeigniter-doctrine-from-scratch-day-1-install-and-setup 作者将带您使用带有CI的doctrine插件,它在您的模型和数据库之间放置一个抽象层。它非常有趣,出色地解释并使用注册/登录系统作为初始示例。