Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Csv Laravel Package

league/csv

View on GitHub
Deep Wiki
Context7

layout: default title: Using CSV with Doctrine packages description: A Class to enable working with CSV document using Doctrine Selection feature - Deprecated feature

Doctrine specific adapter

Deprecation Warning

In a nutshell, the features provided by this package have been implemented in a better integrated manner directly into the main package, without the need for a third party package.

since version 9.16.0 you can write:

<?php

use League\Csv\Reader;
use League\Csv\Statement;

$csv = Reader::from('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');

$criteria = (new Statement())
    ->andWhere('prenom', '=', 'Adam')
    ->orderByAsc('annee')
    ->orderByDesc('foo')
    ->offset(3)
    ->limit(10);
    
$resultset = $criteria->process($csv);

Which covers all the features provided by this package.

Introduction

This extension package contains:

<?php

use Doctrine\Common\Collections\Criteria;
use League\Csv\Doctrine as CsvDoctrine;
use League\Csv\Reader;

$csv = Reader::from('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');

$criteria = Criteria::create()
    ->andWhere(Criteria::expr()->eq('prenom', 'Adam'))
    ->orderBy( [ 'annee' => 'ASC', 'foo' => 'desc', ] )
    ->setFirstResult(0)
    ->setMaxResults(10)
;

//you can do

$resultset = CsvDoctrine\CriteriaConverter::convert($criteria)->process($csv);
$result = new CsvDoctrine\RecordCollection($resultset);

//or

$collection = new CsvDoctrine\RecordCollection($csv);
$result = $collection->matching($criteria);

System Requirements

  • doctrine/collection >= 2.0

But the latest stable version of each dependency is recommended.

Installation

composer require league/csv-doctrine

Usage

Converting a League\Csv\Reader into a Doctrine Collection object

<?php

use League\Csv\Doctrine\RecordCollection;
use League\Csv\Reader;

$csv = Reader::from('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');

$collection = new RecordCollection($csv);

Converting a League\Csv\ResultSet into a Doctrine Collection object

<?php

$csv = Reader::from('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');

$stmt = (new Statement())
    ->where(fn (array $row): bool => isset($row['email']) && str_ends_with($row['email'], '[@github](https://github.com/github).com'));

$collection = new RecordCollection($stmt->process($csv));

Using Doctrine Criteria to filter a League\Csv\Reader object

<?php

use Doctrine\Common\Collections\Criteria;
use League\Csv\Doctrine\CriteriaConverter;
use League\Csv\Reader;

$csv = Reader::from('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');

$criteria = Criteria::create()
    ->andWhere(Criteria::expr()->eq('name', 'Adam'))
    ->orderBy(['years', 'ASC'])
    ->setFirstResult(0)
    ->setMaxResults(10)
;

$stmt = CriteriaConverter::convert($criteria);
$resultset = $stmt->process($csv);

CriteriaConverter advanced usages

<?php

use Doctrine\Common\Collections\Criteria;
use League\Csv\Statement;

public static CriteriaConverter::convert(Criteria $criteria, Statement $stmt = null): Statement
public static CriteriaConverter::addWhere(Criteria $criteria, Statement $stmt = null): Statement
public static CriteriaConverter::addOrderBy(Criteria $criteria, Statement $stmt = null): Statement
public static CriteriaConverter::addInterval(Criteria $criteria, Statement $stmt = null): Statement
  • CriteriaConverter::convert converts the Criteria object into a Statement object.
  • CriteriaConverter::addWhere adds the Criteria::getWhereExpression filters to the submitted Statement object.
  • CriteriaConverter::addOrderBy adds the Criteria::getOrderings filters to the submitted Statement object.
  • CriteriaConverter::addInterval adds the Criteria::getFirstResult and Criteria::getMaxResults filters to the submitted Statement object.

WARNING: While the Criteria object is mutable the Statement object is immutable. All returned Statement objects are new instances

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport