オブジェクトをセッションに保存するときに少し問題があります。私が理解していると思うことによると、クラスがシリアライズ可能で、呼び出す前にそれを含めるとsession_start()
、php はオブジェクトを自動的にシリアライズ/アンシリアライズします。
次の例 ( qcodo 0.4.22 フレームワークを使用) では、オブジェクトの値を復元できません:
require(dirname(__FILE__) . '/../includes/prepend.inc.php');
QApplication::QcodoInfo();
if (!isset($_SESSION["person"])) {
$person = Person::LoadById(1);
$_SESSION["person"]=$person;
}
else {
echo "Hello ".$_SESSION["person"]->FirstName;
}
だから、働くために私はやることを余儀なくされています:
require(dirname(__FILE__) . '/../includes/prepend.inc.php');
QApplication::QcodoInfo();
if (!isset($_SESSION["person"])) {
$person = Person::LoadById(1);
$_SESSION["person"]=serialize($person);
}
else {
echo "Hello ".unserialize($_SESSION["person"])->FirstName;
}
qcodo を使用しないクラスでは、シリアライゼーションを使用する必要はありません。シリアル化を回避することはできますか?