PHP身份验证库,如何构建和配置?

PHP身份验证库,如何构建和配置?,php,authentication,configuration,Php,Authentication,Configuration,标题可能不太清楚,但我会解释我的问题。 我正在为我的项目构建PHP MVC框架。我知道有一些PHP框架,但我喜欢编写代码,我这样做是为了了解更多关于PHP、MVC和其他OOP模式的知识。 它工作得很好,至少到目前为止我已经构建了一些组件 我使用PHP5.3和名称空间,因此我可以根据它们的名称空间/名称要求/加载类。 我构建了SPR-0类加载器类,它使我能够在我的框架内使用其他使用SPR-0“标准”/“约定”类条令或Symfony2组件的库。框架本身的所有功能,我称之为核心,都是作为一个组件编写的

标题可能不太清楚,但我会解释我的问题。 我正在为我的项目构建PHP MVC框架。我知道有一些PHP框架,但我喜欢编写代码,我这样做是为了了解更多关于PHP、MVC和其他OOP模式的知识。 它工作得很好,至少到目前为止我已经构建了一些组件

我使用PHP5.3和名称空间,因此我可以根据它们的名称空间/名称要求/加载类。 我构建了SPR-0类加载器类,它使我能够在我的框架内使用其他使用SPR-0“标准”/“约定”类条令或Symfony2组件的库。框架本身的所有功能,我称之为核心,都是作为一个组件编写的。所以我有\Core\Controller\Controller()类或\Core\Router\Dispatcher()类或\Filesystem\FileManager()类。所以我在需要的地方使用它们。核心组件使我能够添加路由、检测路由、调用合适的控制器/操作等。。。基本上构建一个MVC

现在我需要身份验证模块来检查用户是否在受保护的页面上登录。 我如何设置它?最大的问题是如何告诉身份验证模块要使用哪些表?在哪里可以找到用户名,在哪里可以找到密码?如何配置身份验证模块,使其知道在何处查找用户名和密码? 我可以在数据库中设置users表,并且从不更改它,然后指示身份验证在何处找到他需要的东西。但如果在下一个项目中,我想使用不同的数据库设计,并且我想使用电子邮件行而不是用户名,该怎么办

希望你能理解我的烦恼

简短的问题是如何设置身份验证类/模块,以便以后可以将其配置为使用其他行从中获取数据,以及该类在配置方面的灵活性如何?我是否应该在配置中将变量username映射到表用户行username的某些位置进行映射,以便将后者更改为电子邮件?如何构建灵活且可配置的身份验证库


问题很长,所以感谢您阅读…

如果我理解正确,您希望能够根据您在哪个项目中工作,为Auth选择不同的DB表

那么,为什么不创建一个配置文件,让框架首先“读取”它呢

这就是我认为的其他框架。您可以提供主机、数据库名、用户等。。。在您的情况下,除此之外,您还需要在配置中写入用于身份验证/远程化的表和字段。

请参阅,您还可以为身份验证组件提供多个配置/后端提供程序。然后使用依赖项注入容器,以便可以将配置存储在每个项目的中心位置。