genkgo / camt

PHP Parser for CAMT messages
MIT License
81 stars 67 forks source link

Genkgo.CAMT

Build Status Code Coverage Total Downloads Latest Stable Version License

Library to read CAMT files. Currently only CAMT.052, CAMT.053 and CAMT.054 are supported.

Supported Versions

Camt 052

Version Supported
camt.052.001.01 :heavy_check_mark:
camt.052.001.02 :heavy_check_mark:
camt.052.001.03
camt.052.001.04 :heavy_check_mark:
camt.052.001.05
camt.052.001.06 :heavy_check_mark:
camt.052.001.08 :heavy_check_mark:
camt.052.001.10
camt.052.001.11

Camt 053

Version Supported
camt.053.001.01
camt.053.001.02 :heavy_check_mark:
camt.053.001.03 :heavy_check_mark:
camt.053.001.04 :heavy_check_mark:
camt.053.001.05
camt.053.001.06
camt.053.001.08 :heavy_check_mark:
camt.053.001.10
camt.053.001.11

Camt 054

Version Supported
camt.054.001.01
camt.054.001.02 :heavy_check_mark:
camt.054.001.03
camt.054.001.04 :heavy_check_mark:
camt.054.001.05
camt.054.001.06
camt.054.001.08 :heavy_check_mark:
camt.054.001.10
camt.054.001.11

Installation

It is installable and autoloadable via Composer:

composer require genkgo/camt

Getting Started

Read a CAMT file, and loop through its statements and entries.

<?php
use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$reader = new Reader(Config::getDefault());
$message = $reader->readFile('test/data/camt053.v2.minimal.xml');
$statements = $message->getRecords();
foreach ($statements as $statement) {
    $entries = $statement->getEntries();
}

XSD validation

This library provides a XSD validation for each supported CAMT format. The validation is executed by default. But in some cases, you might want to disable it.

<?php
use Genkgo\Camt\Config;
use Genkgo\Camt\Reader;

$config = Config::getDefault();
$config->disableXsdValidation();

$reader = new Reader($config);

Contributing

Quality

To check that everything is as it should be, run:

composer check

To fix code style, run:

composer check

How to release

  1. Create an annotated tag
    1. git tag -a 1.2.3
    2. Tag subject must be the version number, eg: 1.2.3
    3. Tag body must be a copy-paste of the changelog entries
  2. Push tag with git push --tags, then GitHub Actions will create a GitHub release automatically