paulosanda/laravel-multiple-cep-api
Composer 安装命令:
composer require paulosanda/laravel-multiple-cep-api
包简介
A SOLID CEP search package for Laravel with multiple providers and automatic fallback
README 文档
README
Um pacote SOLID para busca de CEP no Laravel com múltiplos provedores e fallback automático.
📦 Instalação
```bash composer require paulosanda/laravel-multiple-cep-api ```
O pacote usa Package Discovery do Laravel. Não precisa registrar manualmente.
🚀 Uso Básico
```php use PauloSanda\MultipleCepApi\CepService;
$cepService = app(CepService::class); $endereco = $cepService->search('01001000');
// Ou via Facade (se configurada no composer.json): // $endereco = \Cep::search('01001-000');
if ($endereco) {
echo $endereco['logradouro']; // Rua
echo $endereco['bairro']; // Bairro
echo $endereco['cidade']; // Cidade
echo $endereco['estado']; // Estado
echo $endereco['provider']; // Provedor que encontrou
}
```
⚙️ Configuração (Opcional)
```bash php artisan vendor:publish --tag=cep-config ```
Edite `config/cep.php`:
```php return [ 'providers' => [ \PauloSanda\MultipleCepApi\Providers\ViaCepProvider::class, \PauloSanda\MultipleCepApi\Providers\BrasilApiProvider::class, \PauloSanda\MultipleCepApi\Providers\OpenCepProvider::class, // Adicione provedores customizados aqui ], 'timeout' => 3, 'retry_attempts' => 3, ]; ```
🔌 Provedores Padrão
| Provedor | Prioridade | Fallback | Formato |
|---|---|---|---|
| ViaCEP | 100 | Sim | Qualquer |
| BrasilAPI | 90 | Sim | Apenas números |
| OpenCEP | 80 | Não | Apenas números |
🛠️ Criando Provedores Customizados
- Implemente a interface:
```php use PauloSanda\MultipleCepApi\Contracts\CepProviderInterface; use PauloSanda\MultipleCepApi\Utils\CepFormatter;
class MeuProvedorCustomizado implements CepProviderInterface { public function search(string $cep): ?array { // Sua implementação }
public function hasFallback(): bool
{
return true;
}
public function getName(): string
{
return 'MeuProvedor';
}
public function getPriority(): int
{
return 95;
}
public function getRequireCepFormat(): ?string
{
return CepFormatter::JUST_NUMBERS;
}
} ```
- Adicione ao config:
```php 'providers' => [ \PauloSanda\MultipleCepApi\Providers\ViaCepProvider::class, \App\Providers\MeuProvedorCustomizado::class, \PauloSanda\MultipleCepApi\Providers\BrasilApiProvider::class, ], ```
⚠️ Importante
Este pacote usa Facades do Laravel (`Http`, `Log`):
- Funciona apenas dentro de aplicações Laravel
- Testes via CLI puro não funcionam sem Laravel
📁 Estrutura
```
src/
├── CepService.php # Serviço principal
├── CepServiceProvider.php # ServiceProvider
├── Contracts/
│ └── CepProviderInterface.php
├── Providers/
│ ├── ViaCepProvider.php
│ ├── BrasilApiProvider.php
│ └── OpenCepProvider.php
├── Utils/
│ └── CepFormatter.php
└── Facades/
└── Cep.php
```
🔧 Princípios SOLID
- Single Responsibility: Cada classe tem uma responsabilidade
- Open/Closed: Aberto para novos provedores
- Liskov Substitution: Provedores substituíveis
- Interface Segregation: Interface específica
- Dependency Inversion: Depende de abstrações
🤝 Contribuindo
- Fork o projeto
- Crie uma branch (`git checkout -b feature/MinhaFeature`)
- Commit (`git commit -m 'Adiciona MinhaFeature'`)
- Push (`git push origin feature/MinhaFeature`)
- Abra um Pull Request
📄 Licença
MIT - veja LICENSE para detalhes.
👨💻 Autor
Paulo Sanda - GitHub
paulosanda/laravel-multiple-cep-api 适用场景与选型建议
paulosanda/laravel-multiple-cep-api 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 12 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「address」 「laravel」 「brazil」 「cep」 「viacep」 「BrasilApi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 paulosanda/laravel-multiple-cep-api 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 paulosanda/laravel-multiple-cep-api 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 paulosanda/laravel-multiple-cep-api 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Maps in minutes. Powered by the Google Maps API.
Redirects TYPO3 visitors automatic or with a suggestlink to another language and/or root page.
Module adding custom shipping attribute for what3words address
PHP extension with Brazilian states and formats for CPF, CNPJ and ZIP
A FilamentPHP plugin that validates Brazilian postal codes (CEP) and automatically fills address fields (street, neighborhood, city, state, country) using ViaCEP as the primary source, with multiple API fallbacks for reliability.
A modern, feature-rich Laravel package for managing addresses with geocoding, validation, caching, and spatial operations. Perfect for e-commerce, CRM systems, and any application requiring robust address management.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 35
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-24