Anda dapat menggunakannya di Laravel:
ZipCode :: setCountry ( ' US ' );
return Response :: make (
ZipCode :: find ( ' 10006 ' )
);
Atau di luarnya:
$ z = new PragmaRX ZipCode ZipCode ;
return $ z -> find ( ' 20250030 ' )-> toArray ();
Ini secara otomatis merender JSON jika Anda mencoba mengaksesnya sebagai string, tetapi Anda masih dapat:
$ result = ZipCode :: find ( ' 10006 ' );
$ json = $ result -> toJson ();
$ array = $ result -> toArray ();
Pilih layanan web pilihan Anda:
ZipCode :: setPreferredWebService ( ' Zippopotamus ' );
Dapatkan layanan web berdasarkan nama, ubah hal-hal di dalamnya dan temukan alamat/kota dengannya:
$ webService = ZipCode :: getWebServiceByName ( ' Zippopotamus ' );
$ webSerivice -> setUrl ( ' http://api.zippopotam.ca ' );
return ZipCode :: find ( ' 20250030 ' , $ webService );
Buat layanan web baru dan tambahkan ke daftar:
$ webService = new PragmaRX ZipCode Support WebService ;
$ webSerivice -> setUrl ( ' http://api.zippopotam.ca ' );
$ webSerivice -> setQuery ( ' /%country%/%zip_code% ' );
ZipCode :: addWebService ( $ webService );
Ubah agen pengguna yang akan digunakan Guzzle untuk mengakses layanan web:
ZipCode :: setUserAgent ( ' Googlebot/2.1 (+http://www.google.com/bot.html) ' );
Berapa lama waktu yang dibutuhkan untuk menemukan zip?:
$ result = ZipCode :: find ( ' 0200 ' );
echo $ result -> getTimer ();
Dapatkan daftar semua negara yang tersedia:
$ array = ZipCode :: getAvailableCountries ();
Ubah parameter kueri secara dinamis, jadi jika Anda memiliki login Geonames, Anda dapat mengaturnya dengan melakukan:
ZipCode :: setQueryParameter ( ' geonames_username ' , ' yourusername ' );
Paket ini menggunakan layanan web di seluruh dunia untuk memberikan informasi alamat dan kota. Setidaknya ada 2 layanan web yang tersedia untuk semua negara (Brasil saat ini memiliki 6), jika ZipCode tidak dapat mengakses salah satu atau tidak menemukan zip di dalamnya, maka secara otomatis akan dikembalikan ke yang lain. Jika Anda mengetahui layanan web lain yang tersedia yang mungkin lebih baik dari layanan tersebut, silakan buat isu atau PR dengannya.
Ini adalah contoh apa yang Anda dapatkan saat mencari Zip dengannya:
{
country_id : "CH" ,
country_name : "Switzerland" ,
zip_code : "1005" ,
web_service : "Geonames" ,
timer : "0.7808" ,
service_query_url : "http://api.geonames.org/postalCodeSearch?country=CH&postalcode=1005&username=demo" ,
addresses : [
{
postal_code : "1005" ,
state_name : "Canton de Vaud" ,
state_id : "VD" ,
city : "Lausanne" ,
latitude : "46.51985" ,
longitude : "6.64252" ,
department : "District de Lausanne" ,
department_id : "2225" ,
district : "Lausanne"
}
] ,
result_raw : {
totalResultsCount : "1" ,
code : {
postalcode : "1005" ,
name : "Lausanne" ,
countryCode : "CH" ,
lat : "46.51985" ,
lng : "6.64252" ,
adminCode1 : "VD" ,
adminName1 : "Canton de Vaud" ,
adminCode2 : "2225" ,
adminName2 : "District de Lausanne" ,
adminCode3 : "5586" ,
adminName3 : "Lausanne"
}
} ,
success : true
}
ZipCode mengembalikan objek PragmaRXZipCodeSupportResult
dan semua properti dapat diakses:
$ result -> getWebService ();
$ result -> getCountryName ();
Ini adalah router Laravel yang diretas secara tidak biasa yang membuat formulir untuk menanyakan zip pada negara yang dipilih:
Route :: any ( ' zipcode ' , function () {
echo
Form :: open ( array ( ' url ' => ' zipcode ' )) .
Form :: select ( ' country ' , ZipCode :: getAvailableCountries (), Input :: get ( ' country ' )) .
Form :: text ( ' zipcode ' , Input :: get ( ' zipcode ' )) .
Form :: submit ( ' go! ' ) .
Form :: close ();
if ( Input :: get ( ' country ' ))
{
ZipCode :: setCountry ( Input :: get ( ' country ' ));
ZipCode :: setQueryParameter ( ' geonames_username ' , ' demo ' );
echo ' ' ;
var_dump ( ZipCode :: find ( Input :: get ( ' zipcode ' ))-> toArray ());
echo '
' ;
}
});Ada layanan web yang diuji untuk negara-negara berikut:
Jika Anda membutuhkan yang lain, silakan tanyakan atau kirimkan permintaan tarik saja.
Instal menggunakan Komposer:
composer require "pragmarx/zipcode"
Edit app/config/app.php Anda dan tambahkan Penyedia Layanan
'PragmaRXZipCodeVendorLaravelServiceProvider',
Dan Fasad
'ZipCode' => 'PragmaRXZipCodeVendorLaravelFacade',
use PragmaRXZipCodeZipCode;
$zipcode = new ZipCode();
return $zipcode->generateSecretKey()
$zipcode = app()->make('PragmaRXZipCodeContractsZipCode');
return $zipcode->find('20250-030')
use PragmaRXZipCodeContractsZipCode;
class WelcomeController extends Controller {
public function generateKey(ZipCode $zipcode)
{
return $zipcode->find('20250-030');
}
}
Ini adalah layanan yang sangat bagus dan Anda harus menggunakannya sebagai pilihan pertama Anda, tetapi agar gratis (untuk 30.000 kredit/hari) Anda harus membuat akun pengguna dan mengaktifkan layanan web gratis. Dan konfigurasikan ZipCode untuk menggunakan nama pengguna Anda:
ZipCode::setCountry('GB');
ZipCode::setQueryParameter('geonames_username', 'yourusername');
ZipCode::find('L23YL');
Dan Anda juga dapat menggunakan config.php untuk mengaturnya:
return array(
...
'query_parameters' => array(
'geonames_username' => 'demo',
)
);
Antonio Carlos Ribeiro
ZipCode dilisensikan di bawah Lisensi 3-Klausul BSD - lihat file LICENSE
untuk detailnya
Permintaan tarik dan masalah sangat diterima.