PHPackages                             findologic/libflexport - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. findologic/libflexport

ActiveLibrary[File &amp; Storage](/categories/file-storage)

findologic/libflexport
======================

FINDOLOGIC export toolkit for XML and CSV data export

v3.1.1(2y ago)4168.5k—3.5%4[3 issues](https://github.com/findologic/libflexport/issues)3MITPHPPHP ^8.1

Since Jun 2Pushed 1y ago6 watchersCompare

[ Source](https://github.com/findologic/libflexport)[ Packagist](https://packagist.org/packages/findologic/libflexport)[ Docs](https://github.com/findologic/libflexport)[ RSS](/packages/findologic-libflexport/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (35)Used By (3)

FINDOLOGIC export toolkit
=========================

[](#findologic-export-toolkit)

[![Github Actions](https://github.com/findologic/libflexport/workflows/Tests%20with%20coverage/badge.svg)](https://github.com/findologic/libflexport/workflows/Tests%20with%20coverage/badge.svg)[![Latest Stable Version](https://camo.githubusercontent.com/b49011500b8ba4b9252040213a45d2a3ff231fb1b721780a1cdbf9f0947e956f/68747470733a2f2f706f7365722e707567782e6f72672f66696e646f6c6f6769632f6c6962666c6578706f72742f762f737461626c65)](https://packagist.org/packages/findologic/libflexport)[![Code Climate](https://camo.githubusercontent.com/0a17a96b42373d6d2dd63f92cf40bcbab7b08e956245fda71d62828512be0b48/68747470733a2f2f636f6465636c696d6174652e636f6d2f6769746875622f66696e646f6c6f6769632f6c6962666c6578706f72742e737667)](https://codeclimate.com/github/findologic/libflexport)[![Codecov](https://camo.githubusercontent.com/9bc725fd319f1881cc1afa370b5b2ac475141b79de1ba94d799ea2c1fc4b7ffe/68747470733a2f2f636f6465636f762e696f2f67682f66696e646f6c6f6769632f6c6962666c6578706f72742f6272616e63682f646576656c6f702f67726170682f62616467652e737667)](https://codecov.io/gh/findologic/libflexport)

Table of Contents
-----------------

[](#table-of-contents)

1. [Synopsis](#synopsis)
2. [Export recommendation](#export-recommendation)
3. [Limitations](#limitations)
4. [Basic usage](#basic-usage)
    1. [Setup](#setup)
    2. [XML Export](#xml-export)
    3. [CSV Export](#csv-export)
5. [Examples](#examples)
6. [Compatibility](#compatibility)
7. [Contributors](#contributors)

Synopsis
--------

[](#synopsis)

This project provides an export library for XML and CSV generation according to the FINDOLOGIC export patterns.

- XML [https://docs.findologic.com/doku.php?id=xml\_export\_documentation:XML\_2\_format](https://docs.findologic.com/doku.php?id=xml_export_documentation:XML_2_format)
- CSV [https://docs.findologic.com/doku.php?id=csv\_export\_documentation:csv\_2\_format](https://docs.findologic.com/doku.php?id=csv_export_documentation:csv_2_format)
    - Note that CSV support is still relatively new. Consider it beta-quality.

#### Export recommendation

[](#export-recommendation)

Using the XML export is recommended by FINDOLOGIC. The XML is easier to read and has some advantages over the CSV export like:

- No encoding issues as the encoding attribute is provided in the XML response ``.
- Validation is more reliable.
- Simple escaping of content using the ``-tag.
- Standardized structure.
- Dynamically extract the products from the database via `start` and `count` parameter in the url.
- No limited file size for XML because of pagination.
- Using multiple groups per product.

The key advantage for CSV is that it is possible to use way more groups than for XML. On the other hand:

- Groups only regulate visibility - it's not possible to show different values per group.
- The format is prone to encoding issues if non-UTF-8 data is fed into it.
- Total export size is limited by file size, while XML pagination theoretically allows exports of arbitrary size.

#### Limitations

[](#limitations)

Currently, only input text encoded in UTF-8 is supported. To use this library with other types of encoding, one of the following is necessary:

- Convert all text to UTF-8 prior to passing it to `libflexport`.
- Use the XML exporter and modify the library to change the XML header to contain the required encoding.
    - FINDOLOGIC is capable of handling most encodings, but only with XML.

Basic usage
-----------

[](#basic-usage)

### Setup

[](#setup)

1. Include as composer dependency using `composer require findologic/libflexport`
2. Load `./vendor/autoload.php` into the project

### XML export

[](#xml-export)

```
require_once './vendor/autoload.php';

use FINDOLOGIC\Export\Exporter;

$exporter = Exporter::create(ExporterType::XML);

$item = $exporter->createItem('123');

$item->addName('Test');
$item->addUrl('http://example.org/test.html');
$item->addPrice(13.37);
// Alternative long form:
// $name = new Name();
// $name->setValue('Test');
// $item->setName($name);
// $url = new Url();
// $url->setValue('http://example.org/test.html');
// $item->setUrl($url);
// $price = new Price();
// $price->setValue(13.37);
// $item->setPrice($price);

$xmlOutput = $exporter->serializeItems([$item], 0, 1, 1);
```

### CSV export

[](#csv-export)

```
require_once './vendor/autoload.php';

use FINDOLOGIC\Export\Exporter;

$exporter = Exporter::create(ExporterType::CSV);

$item = $exporter->createItem('123');

$item->addPrice(13.37);
$item->addName('Test');
$item->addUrl('http://example.org/test.html');
// Alternative long form:
// $name = new Name();
// $name->setValue('Test');
// $item->setName($name);
// $url = new Url();
// $url->setValue('http://example.org/test.html');
// $item->setUrl($url);
// $price = new Price();
// $price->setValue(13.37);
// $item->setPrice($price);

// Date is mandatory for CSV.
$item->addDateAdded(new \DateTime());

$csvOutput = $exporter->serializeItems([$item], 0, 1, 1);
```

### Examples

[](#examples)

For more specific examples, please have a look at the examples directory.

Compatibility
-------------

[](#compatibility)

The status of the major versions of libflexport is outlined below. Version numbers generally follow [semantic versioning](https://semver.org/) principles.

VersionBranchPHP supportReceives bug fixesReceives enhancementsEnd of life3.Xdevelop&gt;=8.1✔️✔️Not in the foreseeable future2.X2.x&gt;=7.1✔️❌Not in the foreseeable future1.X1.x5.6 - 7.3✔️❌TBD0.X❌5.6 - 7.0❌❌2017-11-24All versions will most likely remain available for as long as the infrastructure to do so exists.

Contributors
------------

[](#contributors)

See [contribution guide](CONTRIBUTING.md).

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity38

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity83

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~80 days

Recently: every ~108 days

Total

31

Last Release

852d ago

Major Versions

0.0.4 → 1.0.02017-11-24

v1.4.0 → v2.0.02019-03-20

v2.9.1 → v3.0.02023-04-03

PHP version history (3 changes)v2.0.0PHP ^7.1

v2.8.0PHP ^7.1|^8.0

v3.0.0PHP ^8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20741025?v=4)[Codex Fons](/maintainers/codexfons)[@codexfons](https://github.com/codexfons)

![](https://www.gravatar.com/avatar/6971dc7475dbc578cb9aa4379421f56c493e1e849a6d94bf70b0b8e6194772bb?d=identicon)[g.sorst@findologic.com](/maintainers/g.sorst@findologic.com)

---

Top Contributors

[![TobiasGraml11](https://avatars.githubusercontent.com/u/51320851?v=4)](https://github.com/TobiasGraml11 "TobiasGraml11 (94 commits)")[![howard](https://avatars.githubusercontent.com/u/26047?v=4)](https://github.com/howard "howard (73 commits)")[![mmachatschek](https://avatars.githubusercontent.com/u/10237069?v=4)](https://github.com/mmachatschek "mmachatschek (56 commits)")[![zaifastafa](https://avatars.githubusercontent.com/u/24492269?v=4)](https://github.com/zaifastafa "zaifastafa (2 commits)")[![Bibarella](https://avatars.githubusercontent.com/u/36549236?v=4)](https://github.com/Bibarella "Bibarella (1 commits)")[![MohamadAssani](https://avatars.githubusercontent.com/u/33125372?v=4)](https://github.com/MohamadAssani "MohamadAssani (1 commits)")[![DomBra](https://avatars.githubusercontent.com/u/30951899?v=4)](https://github.com/DomBra "DomBra (1 commits)")

---

Tags

csv-exportfindologicxml-export

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/findologic-libflexport/health.svg)

```
[![Health](https://phpackages.com/badges/findologic-libflexport/health.svg)](https://phpackages.com/packages/findologic-libflexport)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15161.6M2.6k](/packages/illuminate-filesystem)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)[madnest/madzipper

Easier zip file handling for Laravel applications.

1382.3M6](/packages/madnest-madzipper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
