PHPackages                             samuelbie/mzmsisdn - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. samuelbie/mzmsisdn

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

samuelbie/mzmsisdn
==================

An MSISDN identification and cleaner library for Mozambique subscribers

2.2.1(3y ago)061MITPHP

Since Nov 21Pushed 3y agoCompare

[ Source](https://github.com/Samuel-Bie/msisdn-mz-php)[ Packagist](https://packagist.org/packages/samuelbie/mzmsisdn)[ Docs](https://github.com/Samuel-Bie/msisdn-mz-php.git)[ RSS](/packages/samuelbie-mzmsisdn/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (3)Versions (20)Used By (0)

MZ MSISISDN (Números de celulares moçambicanos)
===============================================

[](#mz-msisisdn-números-de-celulares-moçambicanos)

[![Latest Version on Packagist](https://camo.githubusercontent.com/5eb48918cd47e5befc1a490c2b7778e154bcbd63116742f763610216d3114002/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636f726570726f632f6d736973646e2d70682e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/coreproc/msisdn-ph)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/479a1c846d0ca5b0ffb4b9b64a7705ebe956bd130e8de513e06be6126b0c77c7/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f436f726550726f632f6d736973646e2d70682d7068702f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/CoreProc/msisdn-ph-php)[![Coverage Status](https://camo.githubusercontent.com/e3aa1393000ee9356fba14d9ae6eed60f7d667ed16574c82f260a0e94063995e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f436f726550726f632f6d736973646e2d70682d7068702e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/CoreProc/msisdn-ph-php/code-structure)[![Quality Score](https://camo.githubusercontent.com/24f432259c0e7a778e5c80f501359762ce76ee0f44f607f615e4d935bf676866/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f436f726550726f632f6d736973646e2d70682d7068702e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/CoreProc/msisdn-ph-php)[![Total Downloads](https://camo.githubusercontent.com/d14058396a0829ff4d0d092cce7d60c128ef9f201ebdbfc99c4d3844d03aa6ed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636f726570726f632f6d736973646e2d70682e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/coreproc/msisdn-ph)

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

Índice
------

[](#índice)

- [MZ MSISISDN (Números de celulares moçambicanos)](#mz-msisisdn-n%C3%BAmeros-de-celulares-mo%C3%A7ambicanos)
    - [Índice](#%C3%ADndice)
    - [Instalação](#instala%C3%A7%C3%A3o)
    - [Utilização](#utiliza%C3%A7%C3%A3o)
        - [Validate the mobile number](#validate-the-mobile-number)
        - [Instantiate an MSISDN object](#instantiate-an-msisdn-object)
        - [Formato padronizado dos números de celular](#formato-padronizado-dos-n%C3%BAmeros-de-celular)
        - [Funções baseadas em operadoras](#fun%C3%A7%C3%B5es-baseadas-em-operadoras)
        - [Verificando a operadora](#verificando-a-operadora)
        - [Prefixo da operadora](#prefixo-da-operadora)
        - [Integração as validações Laravel](#integra%C3%A7%C3%A3o-as-valida%C3%A7%C3%B5es-laravel)
    - [Credits](#credits)
    - [License](#license)

Instalação
----------

[](#instalação)

Execute na raiz do seu projeto (assumindo que tenhas instalado o [Composer](https://getcomposer.org/)) o seguinte comando:

```
composer require samuelbie/mzmsisdn
```

Utilização
----------

[](#utilização)

### Validate the mobile number

[](#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

[](#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

[](#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

[](#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

[](#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

[](#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

[](#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
-------

[](#credits)

- [Samuel Bié](https://github.com/chrisbjr)
- [Pessoal de um Pacote das Filipinas](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 68.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~165 days

Recently: every ~198 days

Total

19

Last Release

1208d ago

Major Versions

0.1.x-dev → 1.0.02015-08-20

1.3.3 → 2.0.02020-10-23

PHP version history (2 changes)0.1PHP &gt;=5.3.0

1.2.0PHP &gt;=5.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/076508e242ad57da17993b7a13bcd6034011cb1410440d4ba114032ff1ce4237?d=identicon)[samuel.bie](/maintainers/samuel.bie)

---

Top Contributors

[![chrisbjr](https://avatars.githubusercontent.com/u/571279?v=4)](https://github.com/chrisbjr "chrisbjr (57 commits)")[![Samuel-Bie](https://avatars.githubusercontent.com/u/20905674?v=4)](https://github.com/Samuel-Bie "Samuel-Bie (18 commits)")[![srph](https://avatars.githubusercontent.com/u/5093058?v=4)](https://github.com/srph "srph (4 commits)")[![jusdeleon](https://avatars.githubusercontent.com/u/8758708?v=4)](https://github.com/jusdeleon "jusdeleon (3 commits)")[![candavajameson](https://avatars.githubusercontent.com/u/4110681?v=4)](https://github.com/candavajameson "candavajameson (1 commits)")

---

Tags

msisdnvodacommsisdn mozambiquetmcelmovitel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/samuelbie-mzmsisdn/health.svg)

```
[![Health](https://phpackages.com/badges/samuelbie-mzmsisdn/health.svg)](https://phpackages.com/packages/samuelbie-mzmsisdn)
```

###  Alternatives

[barryvdh/laravel-ide-helper

Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.

14.9k123.0M687](/packages/barryvdh-laravel-ide-helper)[illuminate/pipeline

The Illuminate Pipeline package.

9446.6M213](/packages/illuminate-pipeline)[illuminate/pagination

The Illuminate Pagination package.

10532.5M862](/packages/illuminate-pagination)[spatie/laravel-pjax

A pjax middleware for Laravel 5

513371.8k11](/packages/spatie-laravel-pjax)[spatie/laravel-mix-preload

Add preload and prefetch links based your Mix manifest

169176.0k2](/packages/spatie-laravel-mix-preload)[mrmarchone/laravel-auto-crud

Laravel Auto CRUD helps you streamline development and save time.

28711.8k2](/packages/mrmarchone-laravel-auto-crud)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
