protected function objectGet($target, $keyParts, $default) { $key = array_shift($keyParts); if (!(property_exists($target, $key) || method_exists($target, '__get'))) { return $default; } return $this->dataGet($target->{$key}, $keyParts, $default); }