يمكنك استخدامه في Laravel:
ZipCode :: setCountry ( ' US ' );
return Response :: make (
ZipCode :: find ( ' 10006 ' )
);
أو خارجه:
$ z = new PragmaRX ZipCode ZipCode ;
return $ z -> find ( ' 20250030 ' )-> toArray ();
يقوم تلقائيًا بعرض 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 ();
قم بتغيير معلمات الاستعلام ديناميكيًا، لذلك إذا كان لديك تسجيل دخول للأسماء الجغرافية، فيمكنك تعيينها عن طريق القيام بما يلي:
ZipCode :: setQueryParameter ( ' geonames_username ' , ' yourusername ' );
تستخدم هذه الحزمة خدمات الويب في جميع أنحاء العالم لتوفير معلومات عن العناوين والمدن. هناك ما لا يقل عن خدمتي ويب متاحتين لجميع البلدان (البرازيل لديها حاليًا 6)، إذا لم يتمكن الرمز البريدي من الوصول إلى إحداهما أو لم يجد رمزًا مضغوطًا عليها، فإنه يعود تلقائيًا إلى الخدمات الأخرى. إذا كنت تعرف أي خدمات ويب أخرى متاحة يمكن أن تكون أفضل من تلك، فيرجى إنشاء مشكلة أو علاقة عامة بها.
هذا مثال على ما تحصل عليه عندما تبحث عن ملف 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 ();
هذا جهاز توجيه 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 require "pragmarx/zipcode"
قم بتحرير التطبيق/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');
}
}
هذه خدمة رائعة حقًا ويجب عليك استخدامها كخيارك الأول، ولكن لكي تكون مجانية (مقابل 30000 نقطة/اليوم)، يجب عليك إنشاء حساب مستخدم وتمكين خدمات الويب المجانية. وقم بتكوين 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 فقرات - راجع ملف LICENSE
للحصول على التفاصيل
طلبات السحب والقضايا هي موضع ترحيب كبير.