wagner-goncalves / srcidadao-coletor-camara
这是一个用于下载众议院开放数据服务的XML文件并处理这些文件以供MySQL数据库使用的库。
dev-master
2018-10-29 19:17 UTC
Requires
- php: >=7.1
- catfan/medoo: *
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- phpunit/phpunit: 6.*
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