andylolz/everypolitician-popolo

解析EveryPolitician风格的Popolo数据,并用PHP进行导航

0.0.3 2016-12-13 11:02 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:14:40 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

这是一个将Python包everypolitician-popolo-python移植到PHP的版本,而它本身是将Ruby宝石everypolitician-popolo移植到Python的版本。

安装

通过Composer

$ composer require andylolz/everypolitician-popolo

使用

您可以从EveryPolitician手动下载Popolo文件。

以下示例使用Åland Lagting(它是奥兰群岛的立法机构,作为JSON数据从EveryPolitician奥兰页面提供)。

首先,您需要引入库并从磁盘读取文件。

use \EveryPolitician\EveryPoliticianPopolo\Popolo;
$popolo = Popolo::fromFilename('ep-popolo-v1.0.json');

EveryPolitician使用的所有Popolo类都已实现

为类上的每个属性定义了方法,例如,对于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

您还可以根据其属性找到单个记录或集合

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>

变更日志

请参阅CHANGELOG了解最近的变化。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT了解详细信息。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。