public function __construct($data = array())
{
$this->setFlags(\ArrayObject::ARRAY_AS_PROPS);
if ($data && is_string($data) && file_exists($data)) {
$data = $this->_readFile($data);
}
if (is_string($data)) {
$data = $this->_decode($data);
}
parent::__construct($data ? (array) $data : array());
}