/camt

PHP Parser for CAMT messages

Primary LanguagePHPMIT LicenseMIT

Genkgo.CAMT

Build Status Code Quality 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 ✔️
camt.052.001.02 ✔️
camt.052.001.03
camt.052.001.04 ✔️
camt.052.001.05
camt.052.001.06 ✔️
camt.052.001.08

Camt 053

Version Supported
camt.053.001.01
camt.053.001.02 ✔️
camt.053.001.03 ✔️
camt.053.001.04 ✔️
camt.053.001.05
camt.053.001.06
camt.053.001.08

Camt 054

Version Supported
camt.054.001.01
camt.054.001.02 ✔️
camt.054.001.03
camt.054.001.04 ✔️
camt.054.001.05
camt.054.001.06
camt.054.001.08

Installation

It is installable and autoloadable via Composer:

composer require genkgo/camt

Quality

To run the unit tests at the command line, run:

./vendor/bin/phpunit

This library attempts to comply with PSR-1, PSR-2, and PSR-4. If you notice compliance oversights, please send a patch via pull request.

PHP-CS-Fixer is used to ensure PSR coding standards are respected.

To fix CS, run:

./vendor/bin/php-cs-fixer fix

A .php_cs.dist file in the root directory excludes vendor directory from fixing and contains coding standards level wanted (PSR-2).

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(__DIR__.'/Camt053/Stubs/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

  • Found a bug? Please try to solve it yourself first and issue a pull request. If you are not able to fix it, at least give a clear description what goes wrong. We will have a look when there is time.
  • Want to see a feature added, issue a pull request and see what happens. You could also file a bug of the missing feature and we can discuss how to implement it.