wagner-goncalves/srcidadao-coletor-senado

用于下载联邦参议院开放数据服务XML的库,并将XML处理到MySQL数据库中。

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

This package is auto-updated.

Last update: 2019-12-29 05:36:54 UTC


README

用于下载联邦参议院开放数据服务XML的库,并将XML处理到MySQL数据库中。

先决条件

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

开始方式

通过composer

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

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

更新composer

$ composer update

安装

  • 创建名为"srcidadao"的数据库,可在以下位置找到:这里
  • 在文件/src/Senado/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\Senado\Downloader;
use SrCidadao\Coletor\Senado\Processor;

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

//Codigo sequencial. Deve ser gerado na tabela Senado_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 = $this->getDownloader(1)->obterSenadores(); //Obtém lista de senadores ativos
$result = $this->getProcessor(1)->obterSenadores(); //Processa para a tabela senado_senador

在全体会议中提出的议题

$result = $this->getDownloader(1)->obterMaterias("20170130", "N"); //Obtém matérias (resumo) votadas em prenário (um XML por data de última movimentação) - Data no Formato Ymd, "N" -> Matéria com tramitação já finalizada
$result = $this->getProcessor(1)->obterMaterias();//Processa a lista de matérias para a tabela senado_materia 

议题详细信息

$result = $this->getDownloader(1)->obterMateriaPorID(); //Obtém detalhes de matérias votadas - Deve ser executado após processamento no exemplo anterior.
$result = $this->getProcessor(1)->obterMateriaPorID(); //Processa detalhes de matérias para a tabela senado_detalhemateria e senado_materiaassunto

每位参议员在议题上的投票

$result = $this->getDownloader(1)->obterVotacaoMateria(); //Obtém votação de cada senador - Deve ser executado 
$result = $this->getProcessor(1)->obterVotacaoMateria();; //Processa votos de cada senador na matéria para a tabela senado_votoparlamentar

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

许可证

LGPL-3.0