0
저는 Ajax/PHP 웹 응용 프로그램을 작성하고 있습니다. 대부분의 아약스 호출은 세션에 저장된 사용자 객체에 액세스하는 것을 사용합니다.Ajax 응용 프로그램에서 PHP 세션 사용자를위한 올바른 전략
<?php
session_start();
function session_user()
{
static $session_user = null;
if (!isset($session_user))
{
if (isset($_SESSION['user']))
$session_user = unserialize($_SESSION['user']);
else
$session_user = new User();
}
return $session_user;
}
class User {
public $books_borrowed = array();
public function __construct()
{
}
function __destruct()
{
// store the user object in the session upon destruction
session_start();
$_SESSION[ 'user' ] = serialize($this);
}
function authorise($user_id, $password)
{
// if the user_id and password match, load books_borrowed from the DB
...
}
function deauthorise()
{
session_destroy();
}
}
?>
아약스 호출은 다음과 같이 사용자 개체에 액세스 :
return session_user()->books_borrowed;
하는 것으로 지금까지 내가 말할 수있는, 바로 아약스 호출 반환하기 전에 발생, 파괴,시 사용자 개체를 저장 자체.
개체가 파괴 될 때마다 세션에 사용자 개체를 저장하는 이유는 아약스 호출 중에 변경 될 수있는 다른 개체 (책)가 포함되어 있으며 책 개체를 '알기' (재사용을 위해) 사용자 객체에 관해서도 신경 쓰지 않아야한다.
누군가이 전략에 이상이있을 수 있습니까?
감사
답장을 보내 주셔서 감사합니다.하지만 내 질문과 관련이 있는지 확신 할 수 없습니다. 저는 주로 __destruct에서 세션에 사용자 객체를 저장하는 것이 올바른지에 관심이 있습니다. – Roey
@Roey : 질문과 관련이없는 경우 - 질문에서 아약스에 대한 모든 언급을 제거하십시오. 원래 질문을 난독 화하기 때문입니다. – zerkms