Я пытаюсь написать свой собственный сабер dav carddav backend.На данный момент я в основном написал vcard в исходный код, чтобы опробовать его.Поэтому я расширил класс AbstractBackend в Sabre \ CardDAV \ Backend и переписал некоторые функции.
function getCards($addressbookId)
{
$vcard = new VCard(
[
'FN' => "Max",
'N' => ["Max",
"Luther"],
"NICKNAME" => "nick",
]
);
$data = $vcard->serialize();
return [["carddata" => $data,"uri"=> "nick","lastmodified"=> 101]];
}
А здесь
function getCard($addressBookId, $cardUri)
{
$vcard = new VCard(
[
'FN' => "Max",
'N' => ["Max",
"Luther"],
"NICKNAME" => "nick",
]
);
$data = $vcard->serialize();
return ["carddata" => $data,"uri"=> "nick","lastmodified"=> 101];
}
Теперь я могу получить адресную книгу с помощью Thunderbird и увидеть контакты ввкладка CardBook.Затем я меняю имя визитки.Например Лютер Фу.Я также обновляю последний измененный номер до 102. Теперь я нажимаю кнопку синхронизации в Thunderbird и ожидаю обновленный контакт с новым именем.Вместо этого теперь у меня есть два контакта.Один с новым и другой с новым именем.
Я думаю, что неправильно понимаю некоторые части системы cardDAV.
Может кто-нибудь помочь мне