我有一个称为“布局”的类用于页面布局,另一个称为“用户”的类用于用户。
我创建的每个页面都会实例化一个新布局。
当用户登录时,会实例化一个新用户。
如何获取布局类的实例以了解已实例化的用户?我还可以在会话变量中保存用户的整个实例。不过,我认为这是个坏主意。这方面的最佳实践是什么?
class User
{
var $userid;
var $email;
var $username;
function User($user)
{
$this->userid = $this->getUid($user);
$this->email = $this->getEmail($user);
$this->username = $user;
}
function getUid($u)
{
...
}
function getEmail($u)
{
...
}
}
class Layout
{
var $var1;
var $var2;
var $var3;
function Layout()
{
//defaults...
}
function function1()
{
echo "something";
}
function function2()
{
echo "some other stuff";
}
function function3()
{
echo "something else";
}
}
例如,在index.php中,我将执行以下操作:
include "user.php"
include "layout.php"
$homelayout = new Layout();
$homelayout->function1();
$homelayout->function2();
$homelayout->function3();
现在假设在login.php中有人登录:
include "layout.php"
include "user.php"
if(userAuthSuccess)
{
$currentUser = new User($_POST['username']);
}
只要用户还没有注销,从这里开始从所有PHP文件访问$currentuser及其成员变量(如$currentuser->email等)的最佳方法是什么?