编辑用户配置文件后更新Zend_Auth_Storage

Mar*_*zus 3 php authentication zend-framework zend-auth

我有以下情况:我有用户,使用DB表进行标准认证

$authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter()); 
$authAdapter->setTableName('users'); 
$authAdapter->setIdentityColumn('user_name'); 
$authAdapter->setCredentialColumn('password'); 
Run Code Online (Sandbox Code Playgroud)

当用户编辑他的配置文件时,我将其保存到Db中,但我还需要更新存储(使用标准Zend_Auth_Storage_Session).有什么简单的方法怎么做?非常感谢.

Ake*_*eem 8

$user = Zend_Auth::getInstance()->getIdentity();
$user->newValue = 'new value';
Run Code Online (Sandbox Code Playgroud)

假设您正在更新数据库的同一语句中更新会话数据,则无需再次调用数据库.


Sea*_*ing 5

你最好的选择是不使用Zend_Auth的存储来保存可能会改变的信息 - 默认情况下它只保存身份(有充分理由).我可能会创建一个User类,它包含所有Auth,ACL(以及可能的配置文件)功能,这些功能使用静态get_current()方法来加载存储在会话中的用户.这会绕过在将其填充到会话中时遇到的所有一致性问题,并在您实际需要性能提升时为您提供实现缓存的单点.