【发布时间】:2011-10-22 02:49:04
【问题描述】:
我不想在这里发送垃圾邮件或做广告,我珍视这个社区以及乐于放弃时间回答问题的人们(比如我自己)。我已经为 Codeigniter 构建了一个名为 WolfAuth 的身份验证库。它目前依赖 DataMapper 进行所有数据库交互,直至另行通知。
每个函数当前使用的代码如下。
$u = new User;
$u->get_by_id($user_id);
if ( $u->exists() )
{
// Do user stuff here
}
我不完全确定 PHP 如何处理对象实例化,但肯定在 50 个函数中执行此操作对性能没有好处,如果不是,则会添加不必要的对象实例化。是否可以对我正在使用的每个 DataMapper 模型对象进行全局实例化并在每个函数中重复使用?
如下所示。
class Someclass {
protected $user;
protected $group;
protected $roles;
public function __construct()
{
$this->user = new User;
$this->group = new Group;
}
public function the_user($user_id)
{
$user = $this->user->get_by_id($user_id);
if ( $user->exists() )
{
echo "The user exists!";
}
}
}
我只是在这里非常挑剔,还是我所要求的可能,并且可能是为像我建立的这样一个大型图书馆做事的更好方法?
【问题讨论】:
标签: php database-design codeigniter codeigniter-datamapper