这是关于 Codeigniter 应用程序的。我很难理解为所有身份验证任务创建身份验证库而不是创建包含其特定任务的单个控制器的好处。
任何人都可以解释一下吗?
库使代码重用成为可能。您抽象出身份验证任务的功能,然后您可以在任何控制器、方法、模型等中加载和使用这些功能。
更新
控制器(在 CodeIgniter 中)只是响应请求,而库是主力。例如,在 auth 库中,控制器可能有一个名为login
. 此方法实际上并不让用户登录。相反,它会检查是否有任何$_POST
可用的变量。如果用户尚未输入用户名/密码,则该$_POST
数组将为空。然后控制器将调用一个login
视图,该视图将向用户显示登录表单。然后,用户将输入用户名/密码并将该表单提交回login
身份验证控制器的方法。
由于现在有$_POST
变量,因此 auth 控制器将调用 auth 库(可能是类似的方法check_auth_credentials
并尝试登录用户。
基本上,控制器“控制”请求。他们根据请求是什么以及随请求发送的内容来确定要做什么。相比之下,库是一组管理一组任务的相关方法。控制器是用户交互的对象,库是控制器交互的对象。