/** * @param $contactHandle * @return Contact proxy object */ public function build($contactHandle) { $factory = new LazyLoadingValueHolderFactory(); $initializer = function (&$wrappedObject, LazyLoadingInterface $proxy, $method, array $parameters, &$initializer) use($contactHandle) { $initializer = null; // disable further initialization $result = $this->contactAPI->get($contactHandle); $wrappedObject = (new Contact($contactHandle))->setId($result['id'])->setCompany($result['orgname'])->setType($result['type'])->setVatNumber($result['vat_number'])->setFirstName($result['given'])->setLastName($result['family'])->setStreet($result['streetaddr'])->setZip($result['zip'])->setCity($result['city'])->setCountry($result['country'])->setEmail($result['email'])->setPhone($result['phone'])->setMobile($result['mobile'])->setFax($result['fax'])->setLanguage($result['lang'])->setHideAddress($result['data_obfuscated'])->setHideEmail($result['mail_obfuscated']); return true; // confirm that initialization occurred correctly }; return $factory->createProxy('EdsiTech\\GandiBundle\\Model\\Contact', $initializer); }
/** * Commit a Contact changes * * @param Contact $contact * @return int number of changes */ public function persist(Contact $contact) { return $this->api->persist($contact); }