/** * Factory method to create a Contact object from an array * @param array $props - Associative array of initial properties to set * @return Contact */ public static function create(array $props) { $contact = new Contact(); $contact->id = parent::getValue($props, "id"); $contact->status = parent::getValue($props, "status"); $contact->first_name = parent::getValue($props, "first_name"); $contact->middle_name = parent::getValue($props, "middle_name"); $contact->last_name = parent::getValue($props, "last_name"); $contact->confirmed = parent::getValue($props, "confirmed"); $contact->source = parent::getValue($props, "source"); if (isset($props['email_addresses'])) { foreach ($props['email_addresses'] as $email_address) { $contact->email_addresses[] = EmailAddress::create($email_address); } } $contact->prefix_name = parent::getValue($props, "prefix_name"); $contact->job_title = parent::getValue($props, "job_title"); if (isset($props['addresses'])) { foreach ($props['addresses'] as $address) { $contact->addresses[] = Address::create($address); } } if (isset($props['notes'])) { foreach ($props['notes'] as $note) { $contact->notes[] = Note::create($note); } } $contact->company_name = parent::getValue($props, "company_name"); $contact->home_phone = parent::getValue($props, "home_phone"); $contact->work_phone = parent::getValue($props, "work_phone"); $contact->cell_phone = parent::getValue($props, "cell_phone"); $contact->fax = parent::getValue($props, "fax"); if (isset($props['custom_fields'])) { foreach ($props['custom_fields'] as $custom_field) { $contact->custom_fields[] = CustomField::create($custom_field); } } if (isset($props['lists'])) { foreach ($props['lists'] as $contact_list) { $contact->lists[] = ContactList::create($contact_list); } } $contact->created_date = parent::getValue($props, "created_date"); $contact->modified_date = parent::getValue($props, "modified_date"); $contact->source_details = parent::getValue($props, "source_details"); return $contact; }
/** * Add a note Contact object * * @param Note $note - note to add to the contact */ public function addNote($note) { if (is_string($note)) { $note = array('note' => $note); } if (!$note instanceof EmailAddress) { $note = Note::create($note); } $this->notes[0] = $note; }