定制 paulo-hortelan/lara-cep 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

paulo-hortelan/lara-cep

Composer 安装命令:

composer require paulo-hortelan/lara-cep

包简介

Pacote Laravel para consulta de CEPs brasileiros com múltiplos provedores, cache e orquestração assíncrona opcional.

README 文档

README

Latest Version on Packagist Tests Code Style Total Downloads

lara-cep é um pacote Laravel para consultar CEPs brasileiros usando múltiplos provedores, com:

  • lista de provedores configurável
  • TTL de cache configurável
  • modo assíncrono configurável (consulta todos os provedores habilitados em paralelo)

O pacote foi inspirado no comportamento do CEP Promise e adaptado para fluxos de pacote Laravel.

Instalação

composer require paulo-hortelan/lara-cep

Publique a configuração:

php artisan vendor:publish --tag=lara-cep-config

Uso Básico

use PauloHortelan\LaraCep\Facades\LaraCep;

$address = LaraCep::find('01001-000');

$address->zipCode;  // 01001000
$address->state;    // SP
$address->city;     // Sao Paulo
$address->district; // Centro
$address->street;   // Praca da Se...
$address->provider; // via_cep, open_cep, brasil_api...

Você também pode chamar:

$address = app('lara-cep')->find('01001000');

Configuração

config/lara-cep.php

return [
    'async' => true,

    'cache' => [
        'enabled' => true,
        'ttl' => 3600,
        'store' => null,
        'prefix' => 'lara_cep',
    ],

    'providers' => [
        'via_cep' => [
            'enabled' => true,
            'class' => PauloHortelan\LaraCep\Providers\ViaCepProvider::class,
        ],

        'open_cep' => [
            'enabled' => true,
            'class' => PauloHortelan\LaraCep\Providers\OpenCepProvider::class,
        ],

        'brasil_api' => [
            'enabled' => true,
            'class' => PauloHortelan\LaraCep\Providers\BrasilApiProvider::class,
        ],

        'cep_aberto' => [
            'enabled' => false,
            'class' => PauloHortelan\LaraCep\Providers\CepAbertoProvider::class,
            'token' => env('LARA_CEP_PROVIDER_CEP_ABERTO_TOKEN', ''),
        ],
    ],
];

Comportamento assíncrono

  • async = true: todos os provedores habilitados são consultados em paralelo; a primeira resposta com sucesso vence.
  • async = false: os provedores são consultados na ordem configurada até um retornar sucesso.

Comportamento de cache

  • a chave de cache usa o prefixo configurado + CEP normalizado
  • o TTL é totalmente configurável (cache.ttl)
  • o cache pode ser desabilitado (cache.enabled = false)

Tratamento de Erros

use PauloHortelan\LaraCep\Exceptions\CepLookupException;
use PauloHortelan\LaraCep\Exceptions\InvalidCepException;

try {
    $address = LaraCep::find('99999999');
} catch (InvalidCepException $e) {
    // formato de CEP inválido
} catch (CepLookupException $e) {
    // todos os provedores falharam
    $details = $e->toArray();
}

Testes

composer test

Licença

MIT. Veja LICENSE.md.

统计信息

  • 总下载量: 543
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 6
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-05-06

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固