プライベートメンバーを持つPHPクラスをMongoDbに保存する解決策があるかどうか、誰か教えてもらえますか? 次のエラーが発生し続けます
zero-length keys are not allowed, did you use $ with double quotes?'
実際の回答がない同じ質問に関連する既存の質問が少なくとも 2 つあります。
質問 1
質問 2
私のすべての永続化クラスには、利用できる必要があるプライベート メンバーがありますが、これはプライベート メンバーを利用する複数の機能を持つインスタンス ベースのクラスであるため、プライベート メンバーの必要性を回避する関数の作成には興味がありません。
Web サーバー Apache/2.2.22
PHP バージョン PHP 5.4.6
PHP 拡張機能 mongo/1.2.6
これはサンプル実装になります。コード自体を批判しないでください。これは、基本型の $this と $private メンバーの保存である動作の種類を説明するためのものです。
<?php
class PersistableObject extends AbstractBasePersistableObject
{
public $PublicSubTypeProperty;
public function __construct()
{
parent::__construct();
}
public function GetDalConfigurationFromSubType()
{
//This object is just a wrapper DAL implemented based on
//the php Mongo, MongoDb and MongoCollection objects
return new MongoBasedDal();
}
}
abstract class AbstractBasePersistableObject
{
private $dalRef = null;
public $PublicBaseProperty;
public abstract function GetDalConfigurationFromSubType();
public function __construct()
{
$this->dalRef = $this->GetDalConfigurationFromSubType();
}
public function Save()
{
$this->dalRef->Save($this);
}
}
?>