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.
This extension package contains:
League\Csv\Reader instances into Doctrine Collections objects.<?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);
But the latest stable version of each dependency is recommended.
composer require league/csv-doctrine
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);
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));
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);
<?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
How can I help you explore Laravel packages today?