proget-hq/vcard

此 VCard PHP 类可以生成包含一些数据的 vCard 文件。当使用 iOS 设备时,它将导出为 .ics 文件,因为 iOS 设备不支持默认的 .vcf 文件。

v1.7.5 2022-09-29 09:08 UTC

README

Latest Stable Version License Build Status Scrutinizer Code Quality

此 VCard PHP 库可以生成包含一些数据的 vCard 文件。当使用 iOS 设备且版本小于 iOS 8 时,它将导出为 .ics 文件,因为 iOS 设备不支持默认的 .vcf 文件。

注意:我们正在开发一个全新的版本,以支持 vCard 4.0 版本,并具有极好的代码质量。请查看新版本

用法

安装

composer require jeroendesloovere/vcard

这将使用 Composer 安装 vcard 的最新版本

示例

use JeroenDesloovere\VCard\VCard;

// define vcard
$vcard = new VCard();

// define variables
$lastname = 'Desloovere';
$firstname = 'Jeroen';
$additional = '';
$prefix = '';
$suffix = '';

// add personal data
$vcard->addName($lastname, $firstname, $additional, $prefix, $suffix);

// add work data
$vcard->addCompany('Siesqo');
$vcard->addJobtitle('Web Developer');
$vcard->addRole('Data Protection Officer');
$vcard->addEmail('info@jeroendesloovere.be');
$vcard->addPhoneNumber(1234121212, 'PREF;WORK');
$vcard->addPhoneNumber(123456789, 'WORK');
$vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium');
$vcard->addLabel('street, worktown, workpostcode Belgium');
$vcard->addURL('http://www.jeroendesloovere.be');

$vcard->addPhoto(__DIR__ . '/landscape.jpeg');

// return vcard as a string
//return $vcard->getOutput();

// return vcard as a download
return $vcard->download();

// save vcard on disk
//$vcard->setSavePath('/path/to/directory');
//$vcard->save();

查看所有示例 或查看 VCard 类

解析示例

解析器可以传入一个 VCard 字符串,如下所示

// load VCardParser classes
use JeroenDesloovere\VCard\VCardParser;

$parser = new VCardParser($vcardString);
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.

或者通过使用一个带有文件名的工厂方法

$parser = VCardParser::parseFromFile('path/to/file.vcf');
echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.

查看解析示例 或查看 VCardParser 类

框架支持

我创建了一个 Symfony Bundle: VCard Bundle

例如在 Laravel 中的使用

return Response::make(
    $this->vcard->getOutput(),
    200,
    $this->vcard->getHeaders(true)
);

测试

vendor/bin/phpunit tests

文档

类有良好的内联文档。如果你使用一个不错的 IDE,你会看到每个方法都用 PHPDoc 进行了注释。

贡献

贡献是 欢迎 的,并且将得到完全 认可

拉取请求

用于添加或更新代码

  • 编码语法 - 请保持代码语法与包的其他部分一致。
  • 添加单元测试! - 如果你的补丁没有测试,则不会被接受。
  • 记录任何行为变化 - 确保 README 和任何其他相关文档都保持最新。
  • 考虑我们的发布周期 - 我们试图遵循 semver。随机破坏公共 API 不是选项。
  • 创建主题分支 - 不要要求我们从你的 master 分支拉取。
  • 每个特性一个拉取请求 - 如果你想要做更多的事情,请发送多个拉取请求。
  • 发送一致的提交历史 - 确保你的拉取请求中的每个单独的提交都有意义。如果你在开发过程中必须进行多个中间提交,请在提交之前将它们合并。

问题

用于错误报告或代码讨论。

有关如何在 help.github.com 上与 GitHub 合作,请查看更多信息。

致谢

许可证

此模块根据 MIT 许可证授权。简而言之,此许可证允许你做任何事,只要版权声明保持存在。