samuelbie / mzmsisdn
An MSISDN identification and cleaner library for Mozambique subscribers
Requires
- ext-json: *
- illuminate/support: ^6.0||^7.0||^8.0||^9.0
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
README
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:
- 82 ou 83 são prefixos da TMcel
- 84 ou 85 são prefixos da Vodacom
- 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.