andylolz / everypolitician
PHP package for easy access to EveryPolitician data
Requires
- php: ~5.6|~7.0
- andylolz/everypolitician-popolo: ^0.0.3
- guzzlehttp/guzzle: ^6.0
- league/csv: ^8.0
Requires (Dev)
- mockery/mockery: ^0.9.6
- phpunit/phpunit: ~4.0||~5.0
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-11-09 20:01:51 UTC
README
A PHP library for easy access to EveryPolitician data. This is essentially a port of everypolitician-python, which is itself a port of everypolitican-ruby.
Install
Via Composer
$ composer require andylolz/everypolitician
Usage
Creating an instance of the EveryPolitican class allows you to access information on countries, their legislatures and legislative periods. Each country and legislature has a slug that can be used to reference them via the country and legislature methods:
use \EveryPolitician\EveryPolitician\EveryPolitician; $ep = new EveryPolitician(); $australia = $ep->country('Australia'); $senate = $australia->legislature('Senate'); echo (string) $senate; // <Legislature: Senate in Australia> $uk = $ep->country('UK'); $houseOfCommons = $uk->legislature('Commons'); $americanSamoa = $ep->country('American-Samoa'); $houseOfRepresentatives = $americanSamoa->legislature('House'); foreach ($ep->countries() as $country) { echo $country->name.' has '.count($country->legislatures()).'legislatures'; }
By default this will get the EveryPolitician data and returns the most recent data. This data is found from the index file, called countries.json
, which links to specific versions of other data files.
If you want want to point to a different countries.json
file, you can override the default URL using ::fromUrl
:
$ep = EveryPolitician::fromUrl('https://cdn.rawgit.com/everypolitician/everypolitician-data/080cb46/countries.json');
The example above is using a specific commit (indicated by the hash 080cb46
). If you want to use a local copy of countries.json
you can instead create the object using the ::fromFilename
method, e.g.:
$ep = EveryPolitician::fromFilename('/home/andy/tmp/countries.json');
For more about countries.json
, see this description.
Remember that EveryPolitician data is frequently updated — see this information about using EveryPolitician data.
More information on the EveryPolitician site.
Change log
Please see CHANGELOG for information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Credits
License
The MIT License (MIT). Please see License File for more information.