andylolz / everypolitician-popolo
Parse EveryPolitician-flavoured Popolo data, and navigate it with PHP
Requires
- php: ~5.6|~7.0
- guzzlehttp/guzzle: ^6.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-10-26 20:37:46 UTC
README
This is a port of the Python package everypolitician-popolo-python to PHP, which itself is a port of the Ruby gem everypolitician-popolo to Python.
Install
Via Composer
$ composer require andylolz/everypolitician-popolo
Usage
You can download a Popolo file manually from EveryPolitician.
The following example uses Åland Lagting (which is the legislature of the Åland islands, available as JSON data from the EveryPolitician page for Åland).
First you'll need to require the library and read in a file from disk.
use \EveryPolitician\EveryPoliticianPopolo\Popolo; $popolo = Popolo::fromFilename('ep-popolo-v1.0.json');
All Popolo classes used by EveryPolitician are implemented:
There are methods defined for each property on a class, e.g. for a Person:
count($popolo->persons); // 60 $person = $popolo->persons->first; echo $person->id; // e3aab23e-a883-4763-be0d-92e5936024e2 echo $person->name; // Aaltonen Carina echo $person->image; // http://www.lagtinget.ax/files/aaltonen_carina.jpg echo $person->wikidata; // Q4934081
You can also find individual records or collections based on their attributes:
echo $popolo->persons->get(["name" => "Aaltonen Carina"]); // <Person: Aaltonen Carina> $organizations = $popolo->organizations->filter(["classification" => "party"]); foreach ($organizations as $organization) { echo $organization; } // <Organization: Liberalerna> // <Organization: Liberalerna på Åland r.f.> // <Organization: Moderat Samling> // <Organization: Moderat Samling på Åland r.f.> // <Organization: Moderat samling> // <Organization: Moderaterna på Åland> // <Organization: Obunden Samling> // <Organization: Obunden Samling på Åland> // <Organization: Ålands Framtid> // <Organization: Ålands Socialdemokrater> // <Organization: Ålands framtid> // <Organization: Ålands socialdemokrater> // <Organization: Åländsk Center> // <Organization: Åländsk Center r.f.> // <Organization: Åländsk Demokrati> // <Organization: Åländsk center>
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.