Skip to content

Instantly share code, notes, and snippets.

@nyamsprod
Created August 15, 2018 18:43
Show Gist options
  • Save nyamsprod/12e6d01da00176ce00a70f9288561bc9 to your computer and use it in GitHub Desktop.
Save nyamsprod/12e6d01da00176ce00a70f9288561bc9 to your computer and use it in GitHub Desktop.
Introducing Bakame CSV Doctrine Collection Bridge Post Example
<?php
use Doctrine\Common\Collections\Criteria;
use League\Csv\Reader;
use function Bakame\Csv\Extension\criteria_convert;
$criteria = Criteria::create()
->andWhere(Criteria::expr()->contains('email', '@gmail.com'))
->setFirstResult(0)
->setMaxResults(10);
$csv = Reader::createFromPath('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');
$stmt = criteria_convert($criteria);
$resultset = $stmt->process($csv);
<?php
use Doctrine\Common\Collections\Criteria;
$criteria = Criteria::create()
->andWhere(Criteria::expr()->contains('email', '@gmail.com'))
->setFirstResult(0)
->setMaxResults(10);
<?php
use League\Csv\Reader;
use League\Csv\Statement;
$csv = Reader::createFromPath('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');
$stmt = (new Statement())
->where(function (array $record) {
return isset($record['email'])
&& preg_match('/\@gmail\.com$/i', $record['email']);
})
->limit(10)
->offset(0);
foreach ($stmt->process($csv) as $record) {
//do something with row which contains gmail.com emails...
}
<?php
use Bakame\Csv\Extension\RecordCollection;
use Doctrine\Common\Collections\Criteria;
use League\Csv\Reader;
$csv = Reader::createFromPath('/path/to/my/file.csv');
$csv->setHeaderOffset(0);
$csv->setDelimiter(';');
$collection = new RecordCollection($csv);
$criteria = Criteria::create()
->andWhere(Criteria::expr()->contains('name', 'gmail.com'))
->setFirstResult(0)
->setMaxResults(10);
$result = $collection->matching($criteria);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment