Laravel에서 사용할 수 있습니다.
ZipCode :: setCountry ( ' US ' );
return Response :: make (
ZipCode :: find ( ' 10006 ' )
);
아니면 외부에서:
$ z = new PragmaRX ZipCode ZipCode ;
return $ z -> find ( ' 20250030 ' )-> toArray ();
문자열로 JSON에 액세스하려고 하면 자동으로 JSON을 렌더링하지만 여전히 다음을 수행할 수 있습니다.
$ result = ZipCode :: find ( ' 10006 ' );
$ json = $ result -> toJson ();
$ array = $ result -> toArray ();
선호하는 웹 서비스를 선택하세요:
ZipCode :: setPreferredWebService ( ' Zippopotamus ' );
이름으로 웹 서비스를 받고, 내용을 변경하고, 주소/도시를 찾으세요.
$ webService = ZipCode :: getWebServiceByName ( ' Zippopotamus ' );
$ webSerivice -> setUrl ( ' http://api.zippopotam.ca ' );
return ZipCode :: find ( ' 20250030 ' , $ webService );
새 웹 서비스를 생성하고 목록에 추가합니다.
$ webService = new PragmaRX ZipCode Support WebService ;
$ webSerivice -> setUrl ( ' http://api.zippopotam.ca ' );
$ webSerivice -> setQuery ( ' /%country%/%zip_code% ' );
ZipCode :: addWebService ( $ webService );
Guzzle이 웹 서비스에 액세스하는 데 사용할 사용자 에이전트를 변경합니다.
ZipCode :: setUserAgent ( ' Googlebot/2.1 (+http://www.google.com/bot.html) ' );
우편번호를 찾는 데 시간이 얼마나 걸렸나요?:
$ result = ZipCode :: find ( ' 0200 ' );
echo $ result -> getTimer ();
사용 가능한 모든 국가 목록을 가져옵니다.
$ array = ZipCode :: getAvailableCountries ();
쿼리 매개변수를 동적으로 변경하므로 Geonames 로그인이 있는 경우 다음을 수행하여 설정할 수 있습니다.
ZipCode :: setQueryParameter ( ' geonames_username ' , ' yourusername ' );
이 패키지는 전 세계 웹 서비스를 사용하여 주소와 도시 정보를 제공합니다. 모든 국가에서 사용할 수 있는 웹 서비스가 최소 2개 있습니다(브라질에는 현재 6개가 있습니다). ZipCode가 하나에 액세스할 수 없거나 해당 우편 번호를 찾을 수 없으면 자동으로 다른 서비스로 대체됩니다. 그보다 더 나을 수 있는 다른 웹 서비스를 알고 있다면 해당 서비스에 대한 이슈나 PR을 작성해 주세요.
다음은 Zip으로 검색할 때 얻는 내용의 예입니다.
{
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는 PragmaRXZipCodeSupportResult
객체를 반환하며 모든 속성에 액세스할 수 있습니다.
$ result -> getWebService ();
$ result -> getCountryName ();
이것은 선택한 국가의 zip을 쿼리하는 양식을 렌더링하는 색다른 해킹된 Laravel 라우터입니다.
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 ' <pre> ' ;
var_dump ( ZipCode :: find ( Input :: get ( ' zipcode ' ))-> toArray ());
echo ' </pre> ' ;
}
});
다음 국가에서 테스트된 웹 서비스가 있습니다.
다른 것이 필요한 경우 요청하거나 끌어오기 요청을 보내주세요.
Composer를 사용하여 설치합니다.
composer require "pragmarx/zipcode"
app/config/app.php를 편집하고 서비스 공급자를 추가하세요.
'PragmaRXZipCodeVendorLaravelServiceProvider',
그리고 외관
'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');
}
}
이것은 정말 좋은 서비스이므로 첫 번째 옵션으로 사용해야 하지만 무료(30,000크레딧/일)로 사용하려면 사용자 계정을 만들고 무료 웹 서비스를 활성화해야 합니다. 그리고 사용자 이름을 사용하도록 ZipCode를 구성합니다.
ZipCode::setCountry('GB');
ZipCode::setQueryParameter('geonames_username', 'yourusername');
ZipCode::find('L23YL');
그리고 config.php를 사용하여 설정할 수도 있습니다:
return array(
...
'query_parameters' => array(
'geonames_username' => 'demo',
)
);
안토니오 카를로스 리베이로
ZipCode는 BSD 3-Clause License에 따라 라이센스가 부여됩니다. 자세한 내용은 LICENSE
파일을 참조하세요.
끌어오기 요청과 문제는 환영할 만한 일입니다.