canducci / zipcode
来自巴西的ZipCode
v3.0.6
2020-12-15 14:48 UTC
Requires
- php: >=7.2.7
- php-extended/php-simple-cache-filesystem: ^3.1
Requires (Dev)
- phpspec/phpspec: 6.1.1
- phpunit/phpunit: 8.5.2
This package is auto-updated.
Last update: 2024-09-09 20:13:16 UTC
README
Laravel pacote do Web Service VIACEP web service - http://viacep.com.br
使用 composer: Composer
composer require canducci/zipcode
将类添加到 config/app.php
文件中 providers
数组的末尾
'providers' => [ // ..., Canducci\ZipCode\Providers\ZipCodeServiceProvider::class, Canducci\ZipCode\Providers\ZipCodeAddressServiceProvider::class, ],
并添加您的别名到 aliases
数组中
'aliases' => [ // ..., 'ZipCode' => Canducci\ZipCode\Facades\ZipCode::class, 'Address' => Canducci\ZipCode\Facades\ZipCodeAddress::class, ],
最后,需要运行一个
php artisan vendor:publish
命令后,会出现一个选项菜单,然后选择 Canducci\ZipCode\Providers\ZipCodeServiceProvider
以将配置文件(simplecache.php
)发布到 config/
文件夹
如何使用?
我们有 4 种方式来使用这个包
外观
use Canducci\ZipCode\Facades\ZipCode; $zipCodeInfo = ZipCode::find('01414-001');
辅助工具
$zipCodeInfo = zipcode('01414000');
注入
use Canducci\ZipCode\Contracts\ZipCodeContract; public function index(ZipCodeContract $zipcode) { $zipCodeInfo = $zipcode->find('01414-000'); }
特质
use Canducci\ZipCode\ZipCodeTrait; class WelcomeController extends Controller { use ZipCodeTrait; public function index() { $zipCodeInfo = $this->zipcode('01414000'); } }
有多种方法可以达到相同的结果
$zipCodeInfo = ZipCode::find('01414000'); // Facade $zipCodeInfo = $zipcode->find('01414-000'); // Contract $zipCodeInfo = zipcode('01414000'); // Helper $zipCodeInfo = $this->zipcode('01414-000'); // Trait
缓存更新
可以通过第二个参数强制一个项目更新其缓存
$zipCodeInfo = ZipCode::find('01414000', true); // Facade $zipCodeInfo = $zipcode->find('01414-000', true); // Contract $zipCodeInfo = zipcode('01414000', true); // Helper $zipCodeInfo = $this->zipcode('01414-000', true); // Trait
返回类型
默认返回值为空或 Canducci\ZipCode\ZipCodeInfo
类的实例,并且使用此类返回值存在 array
、object
和 json
文本类型
if ($zipCodeInfo) // null or ZipCodeInfo { $arr = $zipCodeInfo->getArray(); // Array $json = $zipCodeInfo->getJson(); // Json $obj = $zipCodeInfo->getObject(); // Object }
数组
if ($zipCodeInfo) { $arr = $zipCodeInfo->getArray(); /* Array ( [cep] => 01414-001 [logradouro] => Rua Haddock Lobo [bairro] => Cerqueira César [localidade] => São Paulo [uf] => SP [ibge] => 3550308, [complemento] => [gia] => 1004, [siafi] => 0 [ddd] = 11 ) */ }
JSON
if ($zipCodeInfo) { $json = $zipCodeInfo->getJson(); /* { "cep": "01414-001", "logradouro": "Rua Haddock Lobo", "bairro": "Cerqueira César", "localidade": "São Paulo", "uf": "SP", "ibge": "3550308", "complemento": "" "gia": 1004, "ddd": "11", "siafi": 0 } */ }
对象
if ($zipCodeInfo) { $obj = $zipCodeInfo->getObject(); /* stdClass Object ( [cep] => 01414-001 [logradouro] => Rua Haddock Lobo [bairro] => Cerqueira César [localidade] => São Paulo [uf] => SP [ibge] => 3550308 [complemento] => [gia] => 1004 [siafi] => 0 [ddd] = 011 ) */ }
通过提供 uf
、cidade
和 endereço
来搜索多个地址
public function get(Request $request) { $uf = $request->get('uf'); $city = $request->get('cidade'); $address = $request->get('endereco') $zipcodeaddressinfo = zipcodeaddress($uf, $city, $address); if ($zipcodeaddressinfo) return $zipcodeaddressinfo->getJson(); return Response::json(['error' => 1]); }
联邦单位列表
use Canducci\ZipCode\ZipCodeUf; $lists = ZipCodeUf::lists();