caregnum-kz
Библиотека для парсинга гос. номеров авто Республики Казахстан, (*1)
Использование:
Для использования необходимо установить библиотеку через пакетный менеджер Composer:
$ composer require "malikzh/caregnum-kz":"1.*"
, (*2)
После этого можно пользоваться основным методом библиотеки parse()
, (*3)
Пример №1:
Разбор гос.номеров старого образца, (*4)
use Malikzh\CaregnumKz;
$result = CaregnumKz::parse('D916ECA');
// Будет возвращен CaregnumKzResult объект
Пример №2:
Разбор гос.номеров нового образца, (*5)
use Malikzh\CaregnumKz;
$result = CaregnumKz::parse('282ERT04');
// или
$result = CaregnumKz::parse('KZ282ERT04');
// Будет возвращен CaregnumKzResult объект
Автоматическое преобразование символов кириллицы в латиницу:
Если мы напишем:, (*6)
use Malikzh\CaregnumKz;
$result = CaregnumKz::parse('А987ЕТА'); // Здесь все буквы написаны в кириллице
То, библиотека автоматически заменит на латинские соответствующие символы., (*7)
Возвращаемый результат
При использовании метода CaregnumKz::parse()
он всегда будет возвращать экземпляр объекта CaregnumKzResult
,
который содержит следующие поля:, (*8)
$carRegNum // Гос.номер приведенный в общий формат (в верхнем регистре и с обработанными символами кириллице. См. выше)
// Следует отметить, что при вводе гос.номера в новом формате: KZ000ABC00 будет в начале удален KZ.
$regionName = ''; // Название региона на рус. языке
$region2012 = ''; // Код региона, который используется в образцах 2012 года
$region1993 = ''; // Код региона, который используется в образцах 1993 года
$regionNum = -1; // Порядковый номер региона в массиве
$regnumType = 0; // Тип гос. номера. Может быть:
// CaregnumKzResult::TYPE_2012 - Образец 2012 года
// CaregnumKzResult::TYPE_1993 - Образец 1993 года
$regnumData = []; // Компоненты рег. номера. Заметьте, что для гос.номеров разных образцов, порядок (регион,цифры,буквы) будет разным
Исключения (Exceptions)
Библиотека может выбрасывать исключения, если гос.номер указан неверно, или неверно выбран регион.
Рассмотрим пример:, (*9)
use Malikzh\CaregnumKz;
try {
$result = CaregnumKz::parse('0000'); // заведомо неверный номер
} catch (\Malikzh\CaregnumKzException $e) {
// Определить, что именно произошло, можно по коду исключения:
if ($e->getCode() === \Malikzh\CaregnumKzException::CODE_INVALID_CARNUM) {
// Неверный гос.номер
}
elseif ($e->getCode() === \Malikzh\CaregnumKzException::CODE_INVALID_REGION) {
// Неверный регион
}
}
CHANGELOG
v1.1: Добавлено определение номеров мотоциклов, (*10)