このパッケージには、国に関するあらゆる種類の情報が含まれています。
情報 | アイテム |
---|---|
税金 | 32 |
ジオメトリマップ | 248 |
トポロジーマップ | 248 |
通貨 | 256 |
国 | 266 |
タイムゾーン | 423 |
国境 | 649 |
フラグ | 1,570 |
州 | 4,526 |
都市 | 7,376 |
タイムゾーンの時間 | 81,153 |
他の多くの情報の中で、国の地図をプロットすることができます。
Composer を使用してインストールします。
composer require pragmarx/countries
use PragmaRX Countries Package Countries ;
$ countries = new Countries ();
echo $ countries -> where ( ' cca2 ' , ' IT ' )-> first ()-> hydrateCurrencies ()-> currencies -> EUR -> coins -> frequent -> first ();
// or calling it statically
echo Countries:: where ( ' cca2 ' , ' IT ' )-> first ()-> hydrateCurrencies ()-> currencies -> EUR -> coins -> frequent -> first ();
両方とも戻ればいいのに
€1
デフォルト設定のオーバーロード:
use PragmaRX Countries Package Services Config ;
$ countries = new Countries ( new Config ([
' hydrate ' => [
' elements ' => [
' currencies ' => true ,
' flag ' => true ,
' timezones ' => true ,
],
],
]));
このパッケージはLaravelに関連付けられておらず、インストールする必要はありません(この目的のためのブリッジがあります)が、そのコアにLaravelコレクションがあり、コレクション内のすべてのメソッドが利用可能です。これにより、フィルターなどのことが可能になります、マップ、リデュース、検索、並べ替え、拒否など。実際には、Coollection を使用しています。Coollection は、滑らかな構文を備えた Laravel コレクションであり、オブジェクトのプロパティとして配列のキー (および値) にアクセスできるようになります。
データベース内のすべての国を取得するには、次の手順を実行するだけです。
use PragmaRX Countries Package Countries ;
$ countries = new Countries ();
$ all = $ countries -> all ();
json を取得するには、次のようにします。
return $ countries -> toJson ();
キーと値でフィルターします。
$ countries -> where ( ' name.common ' , ' Brazil ' );
ブラジルはその通称で見つかります。
#items: array:22 [▼
"name" => array:3 [▼
"common" => "Brazil"
"official" => "Federative Republic of Brazil"
"native" => array:1 [▼
"por" => array:2 [▼
"official" => "República Federativa do Brasil"
"common" => "Brasil"
]
]
]
または、次のようにフィルタリングすることもできます
$ countries -> whereNameCommon ( ' Brazil ' );
そして、さらに深く進むことができます
$ countries -> where ( ' name.native.por.common ' , ' Brasil ' );
または国のトップレベルドメインで検索します
$ countries -> where ( ' tld.0 ' , ' .ch ' );
取得するため
"name" => array:3 [▼
"common" => "Switzerland"
"official" => "Swiss Confederation"
"native" => array:4 [▶]
]
"tld" => array:1 [▼
0 => ".ch"
]
そして、摘み取るようなものを使用してください
$ countries -> where ( ' cca3 ' , ' USA ' )-> first ()-> hydrateStates ()-> states -> pluck ( ' name ' , ' postal ' )-> toArray ();
取得するため
" MA " => " Massachusetts "
" MN " => " Minnesota "
" MT " => " Montana "
" ND " => " North Dakota "
. . .
このパッケージは、プロパティとメソッドにオブジェクトとしてアクセスできるようにする変更された Collection を使用します。
$ countries -> where ( ' cca3 ' , ' FRA ' )
-> first ()
-> borders
-> first ()
-> name
-> official ;
与えるべきです
Principality of Andorra
境界線のハイドレーションはデフォルトでは無効になっていますが、ハイドレート メソッドを呼び出すことで簡単に境界線をハイドレーションさせることができます。
$ countries -> where ( ' name.common ' , ' United Kingdom ' )
-> hydrate ( ' borders ' )
-> first ()
-> borders
-> reverse ()
-> first ()
-> name
-> common ;
戻るべきです
Ireland
パフォーマンスを向上させるために、デフォルトで有効になっているハイドレーションをほとんどの国プロパティで無効にすることができます。これは、プロパティを手動でハイドレーションする方法です。
$ countries -> where ( ' name.common ' , ' United States ' )-> first ()-> hydrate ( ' timezones ' )-> timezones -> first ()-> zone_name ;
$ countries -> where ( ' name.common ' , ' United States ' )-> first ()-> hydrate ( ' timezones ' )-> timezones -> first ()-> zone_name ;
これらは、水分補給可能な特性の一部です。
一部のプロパティは異なる方法で保存されるため、それらにアクセスするには特別なルールが必要です。これらのプロパティは次のとおりです。
ISO639_3
=> 3 文字の言語コード。ISO4217
=> 3 文字の通貨コード。もちろん、他のプロパティと同様にアクセスできます
$ countries -> whereISO639_3 ( ' por ' )-> count ();
$ countries -> where ( ' ISO639_3 ' , ' por ' )-> count ();
別の名前でプロパティにアクセスしたい場合があります。これは設定で行うことができます。
' maps ' => [
' lca3 ' => ' ISO639_3 '
]
ここでは、言語 3 文字のショート コード ISO 形式を、 language code alpha 3-letter
の短縮形であるlca3
にバインドします。これで、次のようにしてプロパティにアクセスできるようになります
$ countries -> whereLca3 ( ' por ' );
または
$ countries -> where ( ' lca3 ' , ' por ' );
app ( PragmaRX Countries Package Countries::class)
-> all ()
-> map ( function ( $ country ) {
$ commonName = $ country -> name -> common ;
$ languages = $ country -> languages ?? collect ();
$ language = $ languages -> keys ()-> first () ?? null ;
$ nativeNames = $ country -> name -> native ?? null ;
if (
filled ( $ language ) &&
filled ( $ nativeNames ) &&
filled ( $ nativeNames [ $ language ]) ?? null
) {
$ native = $ nativeNames [ $ language ][ ' common ' ] ?? null ;
}
if ( blank ( $ native ?? null ) && filled ( $ nativeNames )) {
$ native = $ nativeNames -> first ()[ ' common ' ] ?? null ;
}
$ native = $ native ?? $ commonName ;
if ( $ native !== $ commonName && filled ( $ native )) {
$ native = " $ native ( $ commonName ) " ;
}
return [ $ country -> cca2 => $ native ];
})
-> values ()
-> toArray ();
次のような 267 (かそこら) か国が表示されるはずです。
"AW" => "Aruba"
"AF" => "افغانستان (Afghanistan)"
"AO" => "Angola"
"AI" => "Anguilla"
"AX" => "Åland (Åland Islands)"
"AL" => "Shqipëria (Albania)"
"AD" => "Andorra"
"AE" => "دولة الإمارات العربية المتحدة (United Arab Emirates)"
"AR" => "Argentina"
"AM" => "Հայաստան (Armenia)"
"AS" => "American Samoa"
"AQ" => "Antarctica"
"TF" => "Terres australes et antarctiques françaises (French Southern and Antarctic Lands)"
"AG" => "Antigua and Barbuda"
"AU" => "Australia"
"AT" => "Österreich (Austria)"
"AZ" => "Azərbaycan (Azerbaijan)"
"BI" => "Burundi"
"BE" => "Belgien (Belgium)"
"BJ" => "Bénin (Benin)"
"BF" => "Burkina Faso"
"BD" => "বাংলাদেশ (Bangladesh)"
"BG" => "България (Bulgaria)"
"BH" => "البحرين (Bahrain)"
"BS" => "Bahamas"
"BA" => "Bosna i Hercegovina (Bosnia and Herzegovina)"
"BL" => "Saint-Barthélemy (Saint Barthélemy)"
"SH" => "Saint Helena, Ascension and Tristan da Cunha"
"BY" => "Белару́сь (Belarus)"
"BZ" => "Belize"
"BM" => "Bermuda"
"BO" => "Wuliwya (Bolivia)"
"BQ" => "Caribisch Nederland (Caribbean Netherlands)"
"BR" => "Brasil (Brazil)"
"BB" => "Barbados"
"BN" => "Negara Brunei Darussalam (Brunei)"
"BT" => "འབྲུག་ཡུལ་ (Bhutan)"
"BV" => "Bouvetøya (Bouvet Island)"
"BW" => "Botswana"
"CF" => "République centrafricaine (Central African Republic)"
"CA" => "Canada"
"CC" => "Cocos (Keeling) Islands"
"CH" => "Suisse (Switzerland)"
"CL" => "Chile"
"CN" => "中国 (China)"
"CI" => "Côte d'Ivoire (Ivory Coast)"
"CM" => "Cameroon"
"CD" => "RD Congo (DR Congo)"
"CG" => "République du Congo (Republic of the Congo)"
"CK" => "Cook Islands"
"CO" => "Colombia"
"KM" => "القمر (Comoros)"
"CV" => "Cabo Verde (Cape Verde)"
...
$ countries -> all ()-> pluck ( ' name.common ' )-> toArray ();
返品
[
" Aruba " ,
" Afghanistan " ,
" Angola " ,
" Anguilla " ,
" Åland Islands " ,
... .
$ countries -> all ()-> pluck ( ' currencies ' )-> toArray ();
返品
[
[
" AWG " ,
],
[
" AFN " ,
],
[
" AOA " ,
],
[
" XCD " ,
],
[
" EUR " ,
],
... .
$ countries -> where ( ' name.common ' , ' Brazil ' )-> first ()-> hydrate ( ' currencies ' )-> currencies -> BRL -> units -> major -> symbol ;
$ countries -> where ( ' name.common ' , ' United States ' )
-> first ()
-> hydrateStates ()
-> states
-> sortBy ( ' name ' )
-> pluck ( ' name ' , ' postal ' );
返品
[
" AL " : " Alabama " ,
" AK " : " Alaska " ,
" AZ " : " Arizona " ,
" AR " : " Arkansas " ,
" CA " : " California " ,
... .
. . . .
$ countries -> where ( ' cca3 ' , ' FRA ' )
-> first ()
-> hydrate ( ' cities ' )
-> cities
-> paris
-> timezone ;
戻るべきです
Europe/Paris
$ countries -> where ( ' name.common ' , ' United States ' )-> first ()-> currencies ;
返品
[{
" alternativeSigns " : [],
" ISO4217Code ": " USD ",
"ISO4217Number": " 840 ",
"sign": " $ " ,
" subunits " : 100 ,
" title ": " U.S. dollar",
....
$ countries -> currencies ();
返品
[
0 => " AED "
1 => " AFN "
2 => " ALL "
3 => " AMD "
4 => " ANG "
5 => " AOA "
6 => " ARS "
7 => " AUD "
8 => " AWG "
9 => " AZN "
10 => " BAM "
. . . .
return $ countries -> where ( ' name.common ' , ' United States ' )-> first ()-> timezone -> NC ;
返品
America/New_York
$ countries -> where ( ' name.common ' , ' Brazil ' )
-> first ()
-> hydrateTimezones ()
-> timezones
-> map ( function ( $ timezone ) {
return $ timezone -> zone_name ;
})-> values ()
-> unique ()
-> toArray ();
return $ countries -> where ( ' name.common ' , ' United States Virgin Islands ' )-> first ()-> hydrate ( ' timezones_times ' )-> timezones -> first ()-> times ;
返品
" times " => [
" abbreviation " => " LMT "
"dst" => " 0 "
"gmt_offset" => " - 14764 "
" time_start " => " -1825098837 "
"zone_id" => " 415 "
1 => [
" abbreviation " => " AST "
"dst" => " 0 "
"gmt_offset" => " - 14400 "
" time_start " => " -1825098836 "
"zone_id" => " 415 "
]
]
国は、SVG フラグを含むさまざまなフラグ ソースを提供します。利用可能なソースの 1 つを使用する方法は次のとおりです。
npm install --save-dev flag-icon-css
@import '~flag-icon-css/sass/flag-icon.scss';
$unitedStatesFlag =
$this->countries->where('cca3', 'USA')
->first()
->flag
->flag_icon;
{!! $unitedStatesFlag !!}
次のようにして構成を公開できます。
php artisan vendor:publish --provider=PragmaRX\Countries\ServiceProvider
このパッケージは他のオープンソース パッケージを使用しています。より良いドキュメントが作成されない限り、mledoze/countries のデータとその使用方法に関する詳細は、この素晴らしい Laravel ニュース記事で見つけることができます。
このパッケージで使用されているパッケージの完全なリストについては、著作権セクションを確認してください。
このプロジェクトのデータ ファイル (JSON、画像、アイコンなど) は手動で更新できません。いずれにしても更新スクリプトによってファイルが削除されるため、これらのファイルに対する手動更新が必要なプル リクエストはすべて閉じられます。
データに問題がある場合は、パッケージ マネージャー (リストされたデータ ソースおよび著作権セクション) に修正を依頼する必要があります。その後、更新スクリプトを実行して、このリポジトリ上でデータを適切に更新することができます。
このパッケージにはupdate.php
スクリプトが付属しており、データ ファイルを更新するにはこのスクリプトを使用する必要があります。すべてのパッケージからすべての情報をダウンロードし、 .json
(および.svg
などの他のパッケージも) を自動的に構築します。やり方は次のとおりです。
cd vendor/pragmarx/countries
composer install
php update.php
そして、すべての再構築が完了するまで、非常に長い時間* (スタックしているように見えることもありますが、実際はそうではありません) 待ちます。その後は、ステージング、コミット、再生成されたすべてのファイルのプッシュ、および新しい PR のドラフトを行うだけです。
このデータは変更されるべきではないため、呼び出しは自動的にキャッシュされます。この動作を変更したい場合は、公開後にconfig/countries.php
ファイルを編集できます。
アントニオ カルロス リベイロ すべての寄稿者
国のデータベースと関係を構築するために、このパッケージはこれらのソースとパッケージを利用します。
各国は BSD 3 条項ライセンスに基づいてライセンスを取得しています - 詳細についてはLICENSE
ファイルを参照してください。
プルリクエストや問題は大歓迎です。