wagner-goncalves / srcidadao-coletor-senado
Biblioteca para Download de XMLs dos Serviços de Dados Abertos do Senado Federal e Processamento dos XMLs para um banco de Dados MySQL.
dev-master
2018-10-29 19:16 UTC
Requires
- php: >=7.1
- catfan/medoo: *
- vlucas/phpdotenv: ^2.4
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2019-12-29 05:36:54 UTC
README
Biblioteca para Download de XMLs dos Serviços de Dados Abertos do Senado Federal e Processamento dos XMLspara um banco de Dados MySQL.
Pré requisitos
- Servidor MySql 5.6 ou superior.
- PHP 7 ou superior.
- Servidor Apache 2.2 ou Superior.
Onde começar
Via composer
Adicione SrCidadão ao composer.json.
$ composer require wagner-goncalves/srcidadao-coletor-Senado
E atualize o composer
$ composer update
Instalação
- Criar banco de dados "srcidadao", disponível aqui.
- Configurar conexão com o banco de dados e a pasta onde os arquivos XML serão baixados no arquivo /src/Senado/Config/.config.
- Conceder permissão de escrita para a pasta configurada (.config) anteriormente para receber os XMLs baixados.
- Configurar eventuais exceções de firewall, uma vez que a biblioteca conecta-se no site remoto da Câmara dos Deputados.
Como usar
Download e processamento de dados
Inicialização
// 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
Senadores
$result = $this->getDownloader(1)->obterSenadores(); //Obtém lista de senadores ativos $result = $this->getProcessor(1)->obterSenadores(); //Processa para a tabela senado_senador
Matérias colocadas em votação no plenário
$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
Detalhes de maérias
$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
Votação de cada senador nas matérias
$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
Consulte classes de teste em /tests/DownloaderTest.php
Licença
LGPL-3.0