wwwd3v/name-parser-and-anonymizer

一个易于使用的名称解析器,具有高级且可配置的匿名化功能。

0.3.0 2018-06-03 18:59 UTC

README

一个易于使用的名称解析器,具有高级且可配置的匿名化选项。

受欧盟GDPR的启发,此库在执行强制个人数据匿名化方面非常有用。

入门指南

先决条件

  • PHP 7.2+
  • Composer

安装

简单安装composer包

composer require wwwd3v/name-parser-and-anonymizer

然后,在代码的某个地方,创建一个NameParserAndAnonymizer类实例

use Wwwd3v\NameParserAndAnonymizer\NameParserAndAnonymizer;

//...

$parser = new NameParserAndAnonymizer();

解析和匿名化名称

简单名称

解析简单名称是微不足道的

$name = $parser->parse('John Steinbeck');

$name->getFirstName(); // 'John
$name->getLastName();  // 'Steinbeck'

(string) $name;        // 'John Steinbeck'

然后匿名化名称就非常简单了

$name = $parser->parse('John Steinbeck')->anonymize();

$name->getFirstName(); // 'John
$name->getLastName();  // 'S.'

(string) $name;        // 'John S.'

复合名称

中间名被解析出来并分组在一个数组中

$name = $parser->parse('John Ronald Reuel Tolkien');

$name->getFirstName();   // 'John
$name->getMiddleNames(); // ['Ronald', 'Reuel']
$name->getLastName();    // 'Tolkien'

(string) $name;        // 'John Ronald Reuel Tolkien'

作为匿名化过程的一部分,中间名被删除

$name = $parser->parse('John Ronald Reuel Tolkien')->anonymize();

$name->getFirstName();   // 'John
$name->getMiddleNames(); // []
$name->getLastName();    // 'T.'

(string) $name;        // 'John T.'

可选地,您可以决定保留匿名化中间名(而不是丢弃它们)

$name = $parser->parse('John Ronald Reuel Tolkien')->anonymize([
    'middleNames' => 'keep',
]);

(string) $name; // 'John Ronald Reuel T.'
$name = $parser->parse('John Ronald Reuel Tolkien')->anonymize([
    'middleNames' => 'anonymize',
]);

(string) $name; // 'John R. R. T.'

边缘情况

过多的空白

所有过多的空白都会被自动删除。解析后的名称的字符串表示形式始终由一个单空格字符分隔

$name = $parser->parse(' John   Ronald    Reuel           Tolkien  ');

$name->getFirstName();   // 'John
$name->getMiddleNames(); // ['Ronald', 'Reuel']
$name->getLastName();    // 'Tolkien'

(string) $name;        // 'John Ronald Reuel Tolkien'

运行测试

只需运行本地的phpunit

./vendor/bin/phpunit

贡献

只需打开一个问题。我们将决定实现细节并一起完善拉取请求。

版本控制

我们使用SemVer进行版本控制。有关可用的版本,请参阅此存储库的标签

许可证

本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE.md文件。

致谢

  • 欧洲联盟