PHPackages                             spiriitlabs/poliris-bundle - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. spiriitlabs/poliris-bundle

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

spiriitlabs/poliris-bundle
==========================

Poliris bundle for CSV

v1.0.0(7mo ago)21MITPHPPHP &gt;=8.2CI failing

Since Nov 9Pushed 1w ago2 watchersCompare

[ Source](https://github.com/SpiriitLabs/poliris-bundle)[ Packagist](https://packagist.org/packages/spiriitlabs/poliris-bundle)[ RSS](/packages/spiriitlabs-poliris-bundle/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (4)Versions (4)Used By (0)

PolirisBundle
=============

[](#polirisbundle)

This bundle provide Poliris generation CSV.

Poliris Current version is V4.1.17.

[![Latest Stable Version](https://camo.githubusercontent.com/ae20741b582f38fe7dcadf8903a6d873baabf467c566a31a273fa6b5fad26e3d/68747470733a2f2f706f7365722e707567782e6f72672f737069726969746c6162732f706f6c697269732d62756e646c652f762f737461626c652e737667)](https://packagist.org/packages/spiriitlabs/poliris-bundle)[![CI Tests](https://github.com/spiriitlabs/poliris-bundle/actions/workflows/ci.yml/badge.svg)](https://github.com/spiriitlabs/poliris-bundle/actions/workflows/ci.yml)[![CI Tests](https://github.com/spiriitlabs/poliris-bundle/actions/workflows/coding-standards.yml/badge.svg)](https://github.com/spiriitlabs/poliris-bundle/actions/workflows/coding-standards.yml)

Installation
------------

[](#installation)

Add [spiriitlabs/poliris-bundle](https://packagist.org/packages/spiriitlabs/poliris-bundle)to your `composer.json` file:

```
$ php composer.phar require "spiriitlabs/poliris-bundle"
```

Documentation
-------------

[](#documentation)

📚 **[Complete Documentation](docs/DOCUMENTATION.md)**

The documentation provides:

- 🚀 Detailed getting started tutorial
- 🎯 Illustrated use cases (SeLoger, photos, automation)
- 📊 Model reference tables
- 🔧 Common error solutions
- 💡 Complete and tested code examples

How to use
----------

[](#how-to-use)

A CSV Poliris is very long. More than 333 columns.

Here we propose to use the pattern Builder to create it.

Some classes:
-------------

[](#some-classes)

The `Column` class represents a position in a CSV file by associating an index with a value:

```
$column1 = new Column(1, 'Agence id'); // a string
$column2 = new Column(2, true); // OUI / NON
$column2 = new Column(2, new \DateTimeImmutable('2023-05-01')); // format d/m/Y
$column2 = new Column(2, object); // return toString on object
$column2 = new Column(2, 1); // 1
```

If a string is used, we remove spaces and EOL.

Exemple:

```
beautiful  house
with garage
```

is transformed into:

```
beautiful house with garage

```

After that we have a lot of classes, exemple "Exterieur"

If we look at the constructor:

```
    public function __construct(
        $ascenseur,
        $calme,
        $piscine,
        $vueDegagee,
        $entree,
        $visAVis,
        $monteCharge
    ) {
        $this->ascenseur = new Column(41, $ascenseur);
        $this->calme = new Column(63, $calme);
        $this->piscine = new Column(65, $piscine);
        $this->vueDegagee = new Column(78, $vueDegagee);
        $this->entree = new Column(189, $entree);
        $this->visAVis = new Column(192, $visAVis);
        $this->monteCharge = new Column(197, $monteCharge);
    }
```

In this example, the CSV file contains data about Exterior features of a property, which are not sequentially arranged in consecutive columns. To simplify the handling of this data, we decided to consolidate them using the `Column` class.

Each property is represented by an instance of `Column`, where the index specifies the column position in the CSV file, and the value holds the associated data. This approach allows for easier access to the exterior features of the property, even if they are scattered throughout the CSV file.

There is 31 classes. [models](Models/Annonce/)

Usage
-----

[](#usage)

```
$builder = new AnnonceExportBuilder();

foreach ($lines as $line) {
    try {
        $this->createLine($builder, $line);
    } catch (\Throwable $throwable) {
        // log
    }
}

return $builder->build();
```

```
function createLine() {
    $builder
        ->startLine()
        ->withIdentifiant(
            'somewhere',
            'agence_id',
            Annonce::ANNONCE_TYPE_VENTE,
            'REF_BA123'
        )
        ->withType(
            getType(),
            getSubType()
        )
```

Important - No validation
-------------------------

[](#important---no-validation)

There is no validation on the data. Why? A CSV file can have several thousand rows, multiplied by approximately 300 columns, and PHP struggles to keep up.

Historically, there were validation classes using the Validator component, but it is too memory-intensive.

One solution would be to batch process the CSV and validate only a few rows at a time. However, that is not currently on the agenda.

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance82

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 58.3% of commits — single point of failure

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

Unknown

Total

1

Last Release

236d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/108736513?v=4)[Spiriit](/maintainers/SpiriitLabs)[@SpiriitLabs](https://github.com/SpiriitLabs)

---

Top Contributors

[![gilles-g](https://avatars.githubusercontent.com/u/377875?v=4)](https://github.com/gilles-g "gilles-g (7 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![Copilot](https://avatars.githubusercontent.com/in/1143301?v=4)](https://github.com/Copilot "Copilot (2 commits)")

---

Tags

bundleleboncoinphppolirisselogersymfony-bundlesymfonybundlepoliris

### Embed Badge

![Health badge](/badges/spiriitlabs-poliris-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/spiriitlabs-poliris-bundle/health.svg)](https://phpackages.com/packages/spiriitlabs-poliris-bundle)
```

###  Alternatives

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M203](/packages/sulu-sulu)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

515100.5k3](/packages/web-auth-webauthn-framework)

PHPackages © 2026

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