kleyton-dev/csv-report-generator

Um pacote de exemplo para gerar relatórios PDF a partir de arquivos CSV.

Installs: 49

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/kleyton-dev/csv-report-generator

0.0.1 2025-10-27 00:30 UTC

This package is auto-updated.

Last update: 2025-11-29 19:18:41 UTC


README

Um pacote PHP para ler arquivos .csv, processar dados e gerar relatórios em .pdf automaticamente.

🚀 Instalação

1. Via Packagist (Recomendado)

composer require kleyton-dev/csv-report-generator

2. Para Desenvolvimento Local

Adicione isto ao composer.json do seu projeto principal (ex: Laravel):

{
    "require": {
        "kleyton-dev/csv-report-generator": "@dev"
    },
    "repositories": [
        {
            "type": "path",
            "url": "../csv-report-generator" 
            // Ajuste o caminho para a pasta do pacote
        }
    ]
}

Depois, execute composer update.

Como Usar

A classe principal é Kleytondev\CsvReportGenerator\ReportGenerator. Ela possui um método:

process(string $csvInputPath, string $pdfOutputPath)

Exemplo de Uso Básico (PHP Puro)

<?php

require 'vendor/autoload.php';

use Kleytondev\CsvReportGenerator\ReportGenerator;

$meuCsv = __DIR__ . '/meus_dados.csv';
$meuPdf = __DIR__ . '/meu_relatorio_final.pdf';

try {
    (new ReportGenerator())->process($meuCsv, $meuPdf);
    echo "Relatório gerado com sucesso!";

} catch (\Exception $e) {
    echo "Erro: " . $e->getMessage();
}

Exemplo de Uso (Dentro de um Job do Laravel)

Este pacote é ideal para processamento em fila.

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate.Queue\InteractsWithQueue;
use Kleytondev\CsvReportGenerator\ReportGenerator; // <-- Use o pacote

class GerarRelatorioCsv implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable;

    public function __construct(
        protected string $caminhoCsv, 
        protected string $caminhoPdf
    ) {}

    /**
     * Executa o job.
     */
    public function handle(): void
    {
        try {
            // Instancia e executa a lógica pesada do pacote
            (new ReportGenerator())->process($this->caminhoCsv, $this->caminhoPdf);
            
            // (Atualize o status no BD para 'Concluído')
            
        } catch (\Exception $e) {
            // (Atualize o status no BD para 'Falhou')
            report($e);
        }
    }
}