此包已弃用,不再维护。未建议替代包。

生成并验证驾驶执照号码(DLN)

0.1.0 2016-03-19 23:21 UTC

This package is auto-updated.

Last update: 2023-10-08 13:42:41 UTC


README

生成并验证驾驶执照号码(DLN)。目前,仅支持英国DVLA颁发的执照。如果您想看到支持其他类型执照的添加,请提出问题 - 我很愿意与您合作实现这一点。

<?php

use Duffleman\DLN\DLN;

require_once('vendor\autoload.php');

$user1 = [
    'familyName'   => 'Morgan',
    'personalName' => 'Sarah Meredyth',
    'birthDate'    => '1964-07-05',
    'sex'          => 'F',
];

$user2 = [
    'familyName'   => 'Gardner',
    'personalName' => 'Charles',
    'birthDate'    => '1969-05-10',
    'sex'          => 'M',
];

$finalChars = '9IJ';
$completeDLN = 'MORGA657054SM9IJ';

dump(DLN::generate($user1)); // => MORGA657054SM
dump(DLN::generate($user1, $finalChars)); // => MORGA657054SM9IJ
dump(DLN::generate($user2)); // => GARDN605109C9
dump(DLN::validate($completeDLN)); // => true
dump(DLN::validate($completeDLN, $user1)); // => true
dump(DLN::validate($completeDLN, $user2)); // => false

安装

$ composer require duffleman/dln

API

DLN::generate(array $userDetails[, $finalCharacters])

根据给定的用户详细信息生成DLN,可选地添加末尾的字符(因为这些字符不能准确生成)。

如果没有提供末尾字符,输出将不是一个完整的DLN,并在DLN.validate函数中验证失败。

返回一个长度为13或16个字符的字符串,具体取决于是否提供了末尾字符。

如果用户详细信息或末尾字符无效,则抛出异常。

DLN::validate($dln[, array $userDetails])

验证一个完整的DLN是否有效,可选地检查DLN的前13个字符是否与给定的用户详细信息匹配。

返回一个布尔值,指示DLN是否有效。

如果用户详细信息无效,则抛出异常。

说明

当提供用户详细信息时,必须严格按照以下指定进行

[
	'familyName' => 'von Neumann', // required, string - can contain spaces
	'personalName' => 'John', // optional, string - first names, including middle names
	'birthDate' => '1969-05-10', // required, string - YYYY-MM-DD date
	'sex' => 'M', // required, string, (M|F) - whatever the person has stated to the DVLA
]

DLN遵循相对严格的格式,长度正好为16个字符。只有DLN的前13个字符可以准确生成 - 剩下的3个字符不能生成,必须单独提供。

末尾字符也遵循严格的格式,长度正好为3个字符。这些字符通常附加到生成的DLN部分,以形成一个完整且有效的DLN。

支持

请在存储库中提出问题。

作者

许可证

MIT许可 - 请参阅LICENSE文件