wc-develop / php-ofx-reader
Template-based OFX reader
Requires
- nesbot/carbon: ^2.16
This package is auto-updated.
Last update: 2025-06-16 18:40:01 UTC
README
PHP Ofx Reader é uma biblioteca simples para leitura de transações em arquivos OFX extraídos das instituições financeiras.
A maior diferença da biblioteca é a utilização de templates para leitura dos arquivos, dessa forma você consegue ler OFX de qualquer instituição financeira.
Instalação
Está biblioteca tem como dependência a extensão mbstring do php.
A instalação é simples bastar usar o Composer:
composer require wc-develop/php-ofx-reader
Uso
Template Generico
A biblioteca possuí um template generico que atende a maior parte dos arquivos OFX oferecidos no mercado, para usa-lo siga os passos abaixo:
<?php require __DIR__ . '/vendor/autoload.php'; use WcDeveloper\PhpOfxReader\OfxReader; $path = '/var/www/html/arquivo.ofx'; $ofxReader = new OfxReader($path); $transactions = $ofxReader->getTransactions();
Template Personalizado
Criar seu template é muito simples, basta seguir os passos abaixo:
1° Crie a classe do template: (O template pode ser criado em qualquer parte do seu projeto)
<?php namespace Seu\NameSpace; use WcDeveloper\PhpOfxReader\TemplateInterface; class CustomTemplate implements TemplateInterface { // Informe a tag root do arquivo, na maioria dos casos será ofx public function rootTag() : string { return 'ofx'; } // informe o caminho completo dentro do seu arquivo para chegar até as transações // separe com -> public function mapTransactions() : string { return 'BANKMSGSRSV1->STMTTRNRS->STMTRS->BANKTRANLIST->STMTTRN'; } /** * Mapeie as transações do seu arquivo OFX * Tipo de dados disponíveis: * - money * - date * - string * * Estrutura de retorno da array: * [ * 'qualquer-key' => ['key' => 'tag-dentro-do-arquivo-ofx', 'type' => 'tipo-do-dado'], * 'key-qualquer' => ['key' => 'tag-dentro-do-arquivo-ofx', 'type' => 'tipo-do-dado'], * ] * * @return array */ public function mapTransaction() : array { return [ 'valor' => ['key' => 'TRNAMT', 'type' => 'money'], 'identificacao'=> ['key' => 'CHECKNUM', 'type' => 'string'], 'historico' => ['key' => 'MEMO', 'type' => 'string'], 'data_extrato' => ['key' => 'DTPOSTED', 'type' => 'date'], ]; } }
2° Basta usar seu template personalizado:
<?php require __DIR__ . '/vendor/autoload.php'; use WcDeveloper\PhpOfxReader\OfxReader; use Seu\NameSpace\CustomTemplate; $url = 'https://seu-dominio.com/arquivo.ofx'; $ofxReader = new OfxReader($url, CustomTemplate::class); $transactions = $ofxReader->getTransactions();
Inicialmente essa biblioteca apenas lê as transações, em breve outras informações serão adicionadas.