Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/claudsonm/cep-promise-php

Busca por CEP utilizando Promises nos serviços dos Correios, ViaCEP, CepAberto e outros.
https://github.com/claudsonm/cep-promise-php

cep cepaberto codeigniter composer composer-package correios laravel packagist php promise symfony viacep zend-framework

Last synced: 6 days ago
JSON representation

Busca por CEP utilizando Promises nos serviços dos Correios, ViaCEP, CepAberto e outros.

Awesome Lists containing this project

README

        

# CEP Promise PHP
[![Run Tests](https://github.com/claudsonm/cep-promise-php/actions/workflows/run-tests.yml/badge.svg)](https://github.com/claudsonm/cep-promise-php/actions/workflows/run-tests.yml)
[![Check & fix styling](https://github.com/claudsonm/cep-promise-php/actions/workflows/php-cs-fixer.yml/badge.svg)](https://github.com/claudsonm/cep-promise-php/actions/workflows/php-cs-fixer.yml)
![Packagist](https://img.shields.io/packagist/dt/claudsonm/cep-promise-php)
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg)](#contributors)

Um pacote agnóstico para PHP 7.4 e 8.0+ que efetua a busca de CEPs em diversos serviços utilizando [Promises/A+](https://promisesaplus.com/).
Inspirado no pacote [CEP Promise](https://github.com/filipedeschamps/cep-promise)
para Node.js e web browsers.

## Features
- Realiza requests de forma concorrente, retornando sempre a resposta mais rápida;
- Possui alta disponibilidade por utilizar diversos provedores de serviço diferentes;
- Base de CEPs sempre atualizada, já que conecta-se com diversos serviços, dentre eles os Correios;
- Sem limites de requisições (*rate limits*) conhecidas;
- Feito utilizando a implementação para PHP de promises do pacote [guzzle/promises](https://github.com/guzzle/promises);

## Instalação
A maneira recomendada de instalar o pacote é via [Composer](https://getcomposer.org/download/).
Com a ferramenta instalada, execute o comando abaixo:

```bash
composer require claudsonm/cep-promise-php
```

Após instalar, você precisará requerer o autoloader do Composer por meio da
instrução:

```php
require 'vendor/autoload.php';
```

## Exemplos de Uso

### Exemplo 1
Busca utilizando valores inteiros e resposta em forma de objeto.

```php
Aracaju
[district] => Inácio Barbosa
[state] => SE
[street] => Rua Universo
[zipCode] => 49040610
)
*/
```

### Exemplo 2
Busca utilizando uma string numérica e resposta em forma de array.

```php
toArray();

/*
Array
(
[city] => Rondonópolis
[district] => Vila Marinópolis
[state] => MT
[street] => Rua Pirajuí
[zipCode] => 78710857
)
*/
```

### Exemplo 3
Busca utilizando uma string com formatação.

```php
zipCode;
echo $address->street;
echo $address->district;
echo $address->city;
echo $address->state;

/*
'59067540'
'Rua Figueira'
'Pitimbu'
'Natal'
'RN'
*/
```

### Exemplo 4
Captura e tratamento de erros.

```php
toArray();
}

/*
Array
(
[message] => Todos os serviços de CEP retornaram erro.
[code] => 2
[errors] => Array
(
[0] => Array
(
[provider] => via_cep
[message] => CEP não encontrado na base do ViaCEP.
)

[1] => Array
(
[provider] => cep_aberto
[message] => Erro ao se conectar com o serviço CEP Aberto.
)

[2] => Array
(
[provider] => correios
[message] => CEP INVÁLIDO
)

)

)
*/
```

## Contribuidores

Um muito obrigado a todos os serumaninhos que contribuiram com este repositório:

Claudson Martins
Claudson Martins

📆 🚧 💻 📖 💡 💼

Este projeto segue a especificação do [all-contributors](https://github.com/all-contributors/all-contributors). Contribuições de qualquer natureza são bem vindas!