wagner-goncalves/srcidadao-coletor-camara

这是一个用于下载众议院开放数据服务的XML文件并处理这些文件以供MySQL数据库使用的库。

dev-master 2018-10-29 19:17 UTC

This package is auto-updated.

Last update: 2019-12-29 05:24:02 UTC


README

这是一个用于下载众议院开放数据服务的XML文件并处理这些文件以供MySQL数据库使用的库。

先决条件

  • MySQL服务器5.6或更高版本。
  • PHP 7或更高版本。
  • Apache服务器2.2或更高版本。

如何开始

通过composer

将SrCidadão添加到composer.json文件中。

$ composer require wagner-goncalves/srcidadao-coletor-camara

更新composer

$ composer update

安装

  • 创建名为"srcidadao"的数据库,数据库文件在此处可用。
  • 在文件/src/Camara/Config/.config中配置数据库连接以及下载XML文件的文件夹。
  • 为之前配置的文件夹(.config)授予写入权限以接收下载的XML文件。
  • 配置防火墙的例外情况,因为该库会连接到众议院远程网站。

如何使用

数据下载和处理

初始化

// Se instalado via composer, use este código para incluir autoloader no topo do projeto.
require 'vendor/autoload.php';

// SrCidadão namespace
use SrCidadao\Coletor\Camara\Downloader;
use SrCidadao\Coletor\Camara\Processor;

//Recupera variáveis de configuração
$dotenv = new Dotenv\Dotenv(__DIR__ . "/../src/Camara/Config/", ".config");
$dotenv->load();

//Codigo sequencial. Deve ser gerado na tabela camara_processamento antes de iniciar o download e processamento.
$codProcessamento = 1; 

$downloader = new Downloader($codProcessamento); // Passo 1, download da XMLs
$processor = new Processor($codProcessamento); // Passo 2, processa XML para banco de dados

政党

$result = $downloader->obterPartidosCD(); //Obtém lista de partidos ativos
$result = $processor->obterPartidosCD(); //Processa para a tabela camara_partido  

议员

$result = $downloader->obterDeputados(); //Obtém lista de deputados ativos
$result = $processor->obterDeputados(); //Processa para a tabela camara_deputado  

议员出席情况

$result = $downloader->listarPresencasDia("20/09/2018", "30/09/2018"); //Obtém arquivos de presença em prenário (um XML por dia)
$result = $processor->listarPresencasDia("20/09/2018", "30/09/2018"); //Processa para a lista de presença para a tabela camara_presenca 

在全体会议上提交的提案

$result = $downloader->listarProposicoesVotadasEmPlenario(2017, 2018); //Obtém proposições (resumo) votadas em prenário (um XML por ano)
$result = $processor->listarProposicoesVotadasEmPlenario(2017, 2018); //Processa para a lista de proposições para a tabela camara_proposicaoplenario 

提案的详细信息

$result = $downloader->obterProposicaoPorID("20/09/2018", "30/09/2018"); //Obtém detalhes de proposições votadas entre dataInicial e dataFinal
$result = $processor->obterProposicaoPorID("20/09/2018", "30/09/2018"); //Processa detalhes de proposições para a tabela camara_proposicao

每位议员对提案的投票

$result = $downloader->obterVotacaoProposicao("20/09/2018", "30/09/2018"); //Obtém votação de cada deputado de proposições votadas entre dataInicial e dataFinal
$result = $processor->obterVotacaoProposicao("20/09/2018", "30/09/2018"); //Processa votos de cada deputado naproposição para a tabela camara_votacaoproposicao

请参考tests/DownloaderTest.php中的测试类

许可证

LGPL-3.0