samuelbie/mzmsisdn

An MSISDN identification and cleaner library for Mozambique subscribers

2.2.1 2023-01-20 22:05 UTC

This package is auto-updated.

Last update: 2024-04-21 01:08:38 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

Facilmente validando e manipulando números de celulares Moçambicanos. Suporte para TMcel, Vodacom, e Movitel

Índice

Instalação

Execute na raiz do seu projeto (assumindo que tenhas instalado o Composer) o seguinte comando:

composer require samuelbie/mzmsisdn

Utilização

Validate the mobile number

A maneira mais básica é executando o método estático validate da classe Msisdn, passando como parâmetro o número de celular.

$mobileNumber = '823847698';

if (Msisdn::validate($mobileNumber)) {
    echo 'Valid mobile number';
} else {
    echo 'Invalid mobile number';
}

O método validate compila ou sanitiza o número dado como entrada e realiza a validação, garantindo que mesmo que o usuário tenha introduzido carateres de separação no meio da string o método retorne verdadeiro caso seja realmente válido:

$validMobileNumber = '+258823847556';
$validMobileNumber = '+258-82-38-47-556';
$validMobileNumber = '847386187';
$validMobileNumber = '84.738.6187';
$validMobileNumber = '258 82 38 47 556 ';

Instantiate an MSISDN object

De outro jeito podemos também criar uma instância da classe MSISDN e o contacto é padronizado ao formato Moçambicano.

$mobileNumber = '823847556';

$msisdn = new Msisdn($mobileNumber);

O objecto MSISDN irá lançar uma InvalidMsisdnException caso o construtor não seja alimentado com um número válido. Nesse contexto é uma boa ideia tratar a excepção ou validar o número antes de construir o objecto.

$invalidMobileNumber = '82-38-47-55';

try {
   $msisdn = new Msisdn($invalidMobileNumber);
} catch (InvalidMsisdnException $e) {
   echo 'The number is invalid';
   return;
}

OR

$invalidMobileNumber = '82-38-47-55';


if (Msisdn::validate($invalidMobileNumber)) {
    $msisdn = new Msisdn($invalidMobileNumber);
} else {
   echo 'Invalid mobile number';
   return;
}

Formato padronizado dos números de celular

Ao instanciar um objecto Msisdn, poderá retornar vários formatos de números de celular, dependendo naturalmente do que será mais útil para o seu contexto.

$mobileNumber = '823847556';

$msisdn = new Msisdn($mobileNumber);

echo $msisdn->get(); // will return 258823847556

echo $msisdn->getFormatted(); // will return "+258 823 847 556"

echo $msisdn->getFullNumber(); // will return +258823847556

Funções baseadas em operadoras

Pode ser que lhe convenha realizar algumas funções baseadas na operadora raiz do contacto.

Nesta área assumisse que:

  1. 82 ou 83 são prefixos da TMcel
  2. 84 ou 85 são prefixos da Vodacom
  3. 86 ou 87 são prefixos da Movitel
$mobileNumber = '823847555';

$msisdn = new Msisdn($mobileNumber);

echo $msisdn->getOperator(); // will return TMCEL

Verificando a operadora

Assuma por exemplo que queiras saber se o contacto é de uma determinada operadora.

$mobileNumber = '823847555';

$msisdn = new Msisdn($mobileNumber);

echo $msisdn->isVodacom(); // will return false
echo $msisdn->isTmcel(); // will return true
echo $msisdn->isMovitel(); // will return false
$mobileNumber = '847386728';

$msisdn = new Msisdn($mobileNumber);


echo $msisdn->isVodacom(); // will return true
echo $msisdn->isTmcel(); // will return false
echo $msisdn->isMovitel(); // will return false

Prefixo da operadora

De igual forma você pode coletar o prefixo da operadora apenas.

$mobileNumber = '823847556';

$msisdn = new Msisdn($mobileNumber);

echo $msisdn->getPrefix(); // will return 82

Integração as validações Laravel

Este pacote já traz consigo a integração com as validações laravel, onde poderá facilmente efetuar validações aos seus HTTP requests.

"msisdn"            // This validates mozambican mobile number
"msisdn_vodacom"    // This just vodacom mobile number
"msisdn_movitel"    // This just movitel mobile number
"msisdn_tmcel"      // This just tmcel mobile number

Example

    $validated = $request->validate([
        'telefone' => 'bail|required|msisdn',
        'contacto_vodacom' => 'bail|required|msisdn_vodacom',
        'contacto_movitel' => 'bail|required|msisdn_movitel',
        'contacto_tmcel' => 'bail|required|msisdn_tmcel',
    ]);

Credits

License

The MIT License (MIT). Please see License File for more information.