7.2 Solar_User对象

在Solar中,我们很少(如果有的话)把用户身份验证、角色和访问控制单独列举出来。相反,我们使用Solar_User对象把Solar_Auth_AdapterSolar_Role_AdapterSolar_Access_Adapter对象实例整合在一起。

因此,我们首先要做的是在对象注册表中保持一个Solar_User对象,这样的话在整个系统中我们就有相同的用户信息。在配置文件中,我们让Solar自动注册一个Solar_User对象。

<?php
// SYSTEM/config.php
$config['Solar']['registry_set']['user'] = 'Solar_User';
// ...
return $config;

现在,我们可以在Solar系统的任何地方获取已经注册过的'user'对象。

<?php
$user = Solar_Registry::get('user');

Solar_User对象构造期间,它会从配置文件读出相应适配器的配置值,并使用它实例化下面的适配器:

  • $user->auth: Solar_Auth_Adapter类的实例

  • $user->role: Solar_Role_Adapter类的实例

  • $user->access: Solar_Access_Adapter类的实例

这意味着你无需自己手动去创建这些类的实例,如Solar_Auth,你只需要注册Solar_User对象,然后获取它的$auth属性即可。

[Note]如何配置?

如果Solar_User能够自动创建那些适配器的实例,那以我们如何配置那些实例呢?

因为Solar使用统一的构造函数、统一的配置和统一的适配器机制,那些实例会根据类名自动地从配置文件中获取配置,Solar系统的其他方面也是如此。