谁能告诉我是否有解决方案将带有私有成员的 PHP 类保存到 MongoDb?我不断收到以下错误
zero-length keys are not allowed, did you use $ with double quotes?'
我看到至少有两个与同一个问题有关的现有问题,但没有真正的答案。
问题 1
问题 2
我所有的持久性类都有一个我需要可用的私有成员,但我不想创建一个函数来避免私有成员的必要性,因为这是一个基于实例的类,它具有利用私有成员的多个功能。
网络服务器 Apache/2.2.22
PHP 版本 PHP 5.4.6
PHP 扩展 mongo/1.2.6
这将是一个示例实现,请不要批评代码本身,它只是为了说明行为的类型,即 $this 的 Save 和基本类型中的 $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);
}
}
?>