php-extended / php-api-fr-insee-ban-object
A library that implements the php-extended/php-api-fr-insee-ban-interface library
Requires
Requires (Dev)
- dev-master
- 7.0.5
- 7.0.4
- 7.0.3
- 7.0.2
- 7.0.1
- 7.0.0
- 6.2.3
- 6.2.2
- 6.2.1
- 6.2.0
- 6.1.9
- 6.1.8
- 6.1.7
- 6.1.6
- 6.1.5
- 6.1.4
- 6.1.3
- 6.1.2
- 6.1.1
- 6.1.0
- 6.0.0
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.4.7
- 3.4.6
- 3.4.5
- 3.4.4
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.8
- 3.1.7
- 3.1.6
- 3.1.5
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
This package is auto-updated.
Last update: 2024-10-31 00:31:03 UTC
README
A library that implements the php-extended/php-api-fr-insee-ban-interface library.
This library makes a collaborative work of the ApiFrInsee, Dgfip, OpenStreetMap Contributors, La Poste and Etalab ; known as the BAN (Base des Adresses Nationale) available as objects to populate a database. The BAN is available at the url : https://adresse.data.gouv.fr/.
Installation
The installation of this library is made via composer and the autoloading of all classes of this library is made through their autoloader.
- Download
composer.phar
from their website. - Then run the following command to install this library as dependency :
php composer.phar php-extended/php-api-fr-insee-ban-object ^7
Basic Usage
This library gives an unique endpoint : \PhpExtended\Insee\InseeCogEndpoint
from which all data can be retrieved.
- For most usages, you may use the following code :
use PhpExtended\Insee\InseeBanEndpoint;
use PhpExtended\Endpoint\GzipHttpEndpoint;
use PhpExtended\Endpoint\HttpEndpoint;
/** $client \Psr\Http\Client\ClientInterface */
$endpoint = new ApiFrInseeBanEndpoint(new GzipHttpEndpoint(new HttpEndpoint($client)));
$lastDateTime = $endpoint->getLatestDate();
$departements = $endpoint->getDepartementIds($lastDateTime);
foreach($departements as $departement)
{
$banLineIterator = $endpoint->getBanLinesIterator($lastDateTime, $departement);
foreach($banLineIterator as $banLine)
{
/** @var $banLine \PhpExtended\Insee\InseeBanLine */
// do something with the ban line representing :
// - a commune with CodeInsee and NomCommune
// - a group (street) with Id, NomVoie and NomComplementaire
// - an address with Id, Numero, Suffixe, CodePostal
// - a position with Id, X, Y, Lat, Lon
// - and generic data like type of localisation,
// source and date of last update
}
}
Be wary that the client must follow a certain number of rules regarding the
handling of files via the X-Php-Download-File
request and response
headers for the GzipHttpEndpoint
to be able to unzip the downloaded
file without having to use gigabytes of memory. It must also return an
X-Request-Uri
header to get the full uri back.
For an example of the minimal needed http client, look at the
InseeBanEndpointTest
class file and find the client that is used.
If you have that much memory however, you can bypass the GzipHttpEndpoint
and all of the X-Php-Download-File
and X-Request-Uri
shenanigans
altogether.
License
The code is under MIT (See license file).