andylolz / everypolitician
PHP package for easy access to EveryPolitician data
Installs: 34
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 3
pkg:composer/andylolz/everypolitician
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: 2025-11-09 01:14:29 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.