public function set($object, $key, $value) { $newValue = $object->{$this->local}; if ($newValue instanceof PropertyReference) { $object->saveAfter($value); } $value->set($this->foreign, $newValue); }