mouf / security.userfiledao
此包包含一个UserDao的实现,它将应用程序用户存储在简单的PHP文件中。它可以与MoufUserService一起使用,为应用程序提供易于使用的访问管理。由于用户存储在PHP文件中,这个非常特殊的DAO根本不需要数据库。
Requires
- php: ^7.1 || ^8.0
- mouf/security.userservice: ^3
- thecodingmachine/funky: ^1
Requires (Dev)
- phpstan/phpstan: ^1.9
- squizlabs/php_codesniffer: ^3.3.1
- thecodingmachine/discovery: ^1.2.1
- thecodingmachine/phpstan-strict-rules: ^1.0
README
TL;DR?
此包是Mouf PHP框架的一部分。如果您想进行用户身份验证但没有数据库存储用户,则需要此包。此包包含一个“DAO”,该DAO将您的用户存储在文件中而不是数据库表中。
为什么我应该关注这个包?
Mouf PHP框架附带一个用于管理用户身份验证的库:UserService。UserService不对用户存储的位置做出任何假设。它们可以存储在关系型数据库(如MySQL)或面向对象的数据库(如MongoDB)中等。UserService所需的所有东西都是一个UserDao,该UserDao负责检索用户并检查密码。
这就是这个包和UserFileDao发挥作用的地方。
此包包含一个UserDao实现,它将应用程序用户存储在简单的PHP文件中。它可以与UserService一起使用,为应用程序提供易于使用的访问管理。由于用户存储在PHP文件中,这个非常特殊的DAO根本不需要数据库!
安装
此包作为composer包提供
composer require mouf/security.userfiledao
它如何工作?
只需在Mouf中创建一个UserFileDao实例并将其绑定到userService实例。
您需要配置的唯一属性是$userFile构造函数参数。它包含包含用户列表的文件的路径。路径相对于项目的根目录。
注册用户
为了创建文件并添加用户,您可以使用registerUser()和write()方法。
$userFileDao = Mouf::getUserFileDao(); // Let's create the user. $user = new UserFileBean(); $user->setLogin("david"); // The password is hashed and never appears in cleartext in any file. $user->setClearTextPassword("my very secret password"); // If you want to add more data, you can store them in the options: $user->setOptions([ "option1" => 42 ]); // Let's register the user $userFileDao->registerUser($user); // Finally, let's rewrite the users file. $userFileDao->write();
删除用户
使用removeUser()方法。
$userFileDao = Mouf::getUserFileDao(); // Let's remove a user $userFileDao->removeUser('david'); // Finally, let's rewrite the users file. $userFileDao->write();
检查包含用户的文件是否存在
有一个实用函数可以检测包含用户的文件是否可用
$userFileDao = Mouf::getUserFileDao(); // Check if a user file exists or not if (!$userFileDao->isUserFileAvailable()) { // Do something (maybe redirect the user to a page where he can create a user?) }
注意事项
此包在Mouf内部用于存储登录Mouf管理界面的凭据。如果您不小心丢失了这些凭据,您可以简单地删除用户文件。对于Mouf PHP框架,此文件存储在[root path]/mouf/no_commit/MoufUsers.php中。