15 if (is_null($this->addressBooks)) {
16 $this->addressBooks = [
20 'principaluri' =>
'principals/user1',
21 '{DAV:}displayname' =>
'd-name',
26 'principaluri' =>
'principals/user1',
27 '{DAV:}displayname' =>
'd-name',
31 $card2 =
fopen(
'php://memory',
'r+');
32 fwrite($card2,
"BEGIN:VCARD\nVERSION:3.0\nUID:45678\nEND:VCARD");
36 'card1' =>
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nEND:VCARD",
40 'card3' =>
"BEGIN:VCARD\nVERSION:3.0\nUID:12345\nFN:Test-Card\nEMAIL;TYPE=home:bar@example.org\nEND:VCARD",
51 foreach ($this->addressBooks as $book) {
52 if ($book[
'principaluri'] === $principalUri) {
78 foreach ($this->addressBooks as &$book) {
79 if ($book[
'id'] !== $addressBookId)
82 $propPatch->handleRemaining(
function($mutations) use (&$book) {
83 foreach ($mutations as
$key => $value) {
95 $this->addressBooks[] = array_merge($properties, [
98 'principaluri' => $principalUri,
105 foreach ($this->addressBooks as
$key => $value) {
106 if ($value[
'id'] === $addressBookId)
107 unset($this->addressBooks[
$key]);
109 unset($this->cards[$addressBookId]);
135 foreach ($this->cards[$addressBookId] as $uri =>
$data) {
136 if (is_resource(
$data)) {
145 'etag' =>
'"' . md5(
$data) .
'"',
146 'size' => strlen(
$data)
168 if (!isset($this->cards[$addressBookId][$cardUri])) {
172 $data = $this->cards[$addressBookId][$cardUri];
176 'etag' =>
'"' . md5(
$data) .
'"',
177 'size' => strlen(
$data)
209 if (is_resource($cardData)) {
210 $cardData = stream_get_contents($cardData);
212 $this->cards[$addressBookId][$cardUri] = $cardData;
213 return '"' . md5($cardData) .
'"';
244 if (is_resource($cardData)) {
245 $cardData = stream_get_contents($cardData);
247 $this->cards[$addressBookId][$cardUri] = $cardData;
248 return '"' . md5($cardData) .
'"';
254 unset($this->cards[$addressBookId][$cardUri]);
getCards($addressBookId)
Returns all cards for a specific addressbook id.
createCard($addressBookId, $cardUri, $cardData)
Creates a new card.
This class represents a set of properties that are going to be updated.
updateCard($addressBookId, $cardUri, $cardData)
Updates a card.
getCard($addressBookId, $cardUri)
Returns a specfic card.
__construct($addressBooks=null, $cards=null)
updateAddressBook($addressBookId, \Sabre\DAV\PropPatch $propPatch)
Updates properties for an address book.
CardDAV abstract Backend.
createAddressBook($principalUri, $url, array $properties)
Creates a new address book.
deleteCard($addressBookId, $cardUri)
Deletes a card.
deleteAddressBook($addressBookId)
Deletes an entire addressbook and all its contents.
getAddressBooksForUser($principalUri)
Returns the list of addressbooks for a specific user.