Salut ! Je vous présente aujourd’hui une librairie PHP que je trouve assez intéressant,  Country. Country est un package PHP disposant d’une base de données collectionnant les informations de 250 pays du monde.

Si vous vous demandez comment afficher la liste de pays dans ses formulaires, comment afficher le drapeau des pays ? Vous trouverez votre compte à rendre dans la suite.

Attendre dire des informations, je parle de toutes les informations d’un pays qu’on peut avoir besoin, le nom, la capitale, le drapeau, les langues, la superficie, le contient, l’indicatif du pays, le code postal, etc…

Utilisation de Country

Pour utiliser Country, il va falloir d’abord le charger comme dépendance de son projet avec composer .

composer require "rinvex/country":"^3.0"

Après chargement de Country, vous pouvez vous servir des helpers que disposent country n’importe où dans votre projet. N’oubliez cependant pas de charger l’autoloader.

<?php
//Chargement de l'autoloader
require __DIR__.'/vendor/autoload.php';

$drc = country('cd');
$drc->getName(); //DR Congo
$drc->getOfficialName(); // Democratic Republic of the Congo
$drc->getNativeName(); // RD Congo
$drc->getNativeOfficialName(); // République démocratique du Congo
$drc->getDemonym(); // Congolese
$drc->getCallingCode(); // 243
$drc->getLanguages(); // ['French', 'Kikongo', 'Lingala', 'Tshiluba', 'Shuahili']
$drc->getFlag() //Affiche le drapeau de la RDC sous forme de balise svg.
//...

Vous pouvez aussi récupérer la liste des pays avec countries() qui renvoie un tableau.

<?php

require __DIR__.'/vendor/autoload.php';

$countries = countries();
echo count($countries); //250

Et enfin, vous pouvez filtrer les pays comme suit :

<?php
require __DIR__.'/vendor/autoload.php';

$africa_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['AF'=>'Africa']
);

$official_francophones_countries = \Rinvex\Country\CountryLoader::where(
            'languages', 
            ['fra'=>'French']
);

echo count($africa_countries); //58
echo count($official_francophones_countries); //23

On peut donc facilement faire notre liste de pays par contient :

Afrique

Liste des pays d’Afrique

<?php
require __DIR__.'/vendor/autoload.php';

$africa_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['AF'=>'Africa']
);

Amérique

Liste des pays d’Amériques

<?php
require __DIR__.'/vendor/autoload.php';

$north_america_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['NA'=>'North America']
);
$south_america_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['SA'=>'South America']
);

$america_countries = array_merge(
                  $north_america_countries, 
                  $south_america_countries
           );

Asie

Liste des pays d’Asie

<?php
require __DIR__.'/vendor/autoload.php';

$asia_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['AS'=>'Asia']
);

Europe

Liste des pays d’Europe

<?php
require __DIR__.'/vendor/autoload.php';

$europa_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['EU'=>'Europe']
);

Océanie

Liste des pays d’Océanie

<?php
require __DIR__.'/vendor/autoload.php';

$oceania_countries = \Rinvex\Country\CountryLoader::where(
            'geo.continent', 
            ['OC'=>'Oceania']
);

Vous trouverez plus d’information dans le repository de la librairie.

Catégorisé: