audriga / jmap-icalendar_vcard
在iCalendar和JSCalendar之间,或在vCard和JSContact之间进行转换
0.5.0
2024-01-11 12:55 UTC
Requires
- php: >=5.6
- audriga/jmap-openxport: ~1
- sabre/vobject: >=4.2
Requires (Dev)
- phpunit/phpunit: >=9
- squizlabs/php_codesniffer: >=3
This package is not auto-updated.
Last update: 2024-09-27 15:45:27 UTC
README
JMAP iCalendar/vCard 库扩展了 openxport-jmap,增加了在iCalendar和JSCalendar之间,以及在vCard和JSContact之间转换的能力。
对于用户来说,从另一个服务迁移到您的服务,以及相反的情况,应该很简单。OpenXPort 使得暴露 RESTful API 端点以实现数据迁移变得简单。它基于可互操作的协议 JMAP,该协议已经支持多种数据类型,并可以扩展支持更多类型。
此库目前旨在实现以下规范
- JSCalendar:从iCalendar转换到以及转换到iCalendar draft-ietf-calext-jscalendar-icalendar
- JSContact:从vCard转换到以及转换到vCard draft-ietf-calext-jscontact-vcard
OpenXPort 考虑到与旧系统的兼容性而构建。我们支持所有 PHP 版本,直到 5.6,以提供对旧系统的数据迁移支持。
安装
本地安装
- 运行
make
以初始化项目。它使用您本地的 PHP 版本以及大多数最新的依赖项(目前为 PHP 8.2)。如果您需要为不同的版本构建,请使用其他构建目标(例如,make php70_mode
)。
使用
独立
将在未来的版本中支持。
在openxport-jmap中使用
此库为openxport-jmap提供特定于该项目的适配器和映射器。有不同版本的适配器和映射器可供选择
- 旨在完全符合上述的 IETF 规范(例如,
JSCalendarICalendarAdapter
) - 针对特定系统的转换适配(例如,
NextcloudJSContactVCardAdapter
)
它们可以通过通常的方式包含在 OpenXPort 项目中
$adapters = array( "Cards" => new \OpenXPort\Adapter\NextcloudJSContactVCardAdapter() ... $mappers = array( "Cards" => new \OpenXPort\Mapper\JSContactVCardMapper(), ...
开发
安装
- 运行
make
或上述旧 PHP 版本的任何目标。 - 运行
make update
以更新依赖项并提供开发工具。
测试
要运行所有测试,请运行 make fulltest
。这需要 Podman(用于静态分析)。
您也可以单独运行它们
- 静态分析 通过
make lint
- 单元测试 通过
make unit_test