Csv Versions Save

CSV data manipulation made easy in PHP

9.15.0

3 months ago

Added

  • Statement::select
  • TabularDataReader::getRecordsAsObject
  • TabularDataReader::chunkBy
  • TabularDataReader::mapHeader

Deprecated

  • TabularDataReader::getObjects use TabularDataReader::getRecordsAsObject instead

Fixed

  • Reader::select and ResultSet::select now internally use Statement::select
  • Statement should not throw when LimitIterator is used in combinaison with ArrayIterator.
  • Statement internal codebase improvement.
  • Using the $header argument on Statement::process is no longer deprecated. E_USER_DEPRECATED is no longer triggered.
  • BOM stripping no longer depends on the mbstring extension
  • TabularDataReader::fetchColumn is no longer deprecated

Removed

  • None

9.14.0

5 months ago

Added

  • League\Csv\TabularDataReader::nthAsObject equivalent to nth but returns an object or null
  • League\Csv\TabularDataReader::firstAsObject equivalent to first but returns an object or null
  • League\Csv\Serializer\Denormalizer::types list all the registered types

Deprecated

  • None

Fixed

  • None

Removed

  • None

9.13.0

5 months ago

Added

  • League\Csv\SwapDelimiter stream filter to allow working with multibyte CSV delimiter
  • League\Csv\Serializer\AfterMapping to work around the limitation of not using the class constructor during denormalization.
  • League\Csv\Serializer\Denormalizer to allow registering type alias to improve callback usage.
  • League\Csv\Serializer\MapCell has a new property ignore to allow ignoring a property or a method during denormalization.

Deprecated

  • None

Fixed

  • None

Removed

  • None

9.12.0

6 months ago

Added

  • TabulatDataReader::value
  • TabulatDataReader::select
  • TabulatDataReader::getObjects
  • TabulatDataReader::matching
  • TabulatDataReader::matchingFirst
  • TabulatDataReader::matchingFirstOrFail
  • ResultSet::fromRecords
  • Stream::setMaxLineLen
  • Stream::getMaxLineLen
  • League\Csv\Serializer\Denormalizer to allow denormalizing records into objects #508
  • League\Csv\FragmentFinder to implement RFC7111

Deprecated

  • Using the $header argument on Statement::process is deprecated and will be removed in the next version. Use TabularDataReader::getRecords on the returned value instead. It's usage will trigger a E_USER_DEPRECATED call.

Fixed

  • The optional $header argument for TabularDataReader;;getRecords becomes a full mapper between the records column offset and the column names #498
  • ResultSet constructor now allows the records to be an array.
  • The internal Stream object will throw a RuntimeException if the rewind action fails
  • if calls to fseek fails (returns -1 ) a RuntimeException will be thrown.
  • Stream can iterate and return the full line respecting SplFielObject flags. Previously it only returned the CSV records.
  • MapIterator::fromIterable to instantiate a MapIterator object from any iterable structure.

Removed

  • None

9.11.0

8 months ago

Added

  • EscapeFormula::unescapeRecord does the opposite of EscapeFormula::escapeRecord
  • TabularReader::each
  • TabularReader::exists
  • TabularReader::reduce
  • TabularReader::filter
  • TabularReader::slice
  • TabularReader::sorted
  • Reader::addFormatter

All the methods from the TabularReader interface are implemented on the Reader and the ResultSet objects.

Deprecated

  • EscapeFormula::__invoke use EscapeFormula::__escapeRecord instead

Fixed

  • None

Removed

  • None

9.10.0

9 months ago

Added

  • Writer::forceEnclosure and Writer::relaxEnclosure to control the presence of enclosure in the generated CSV
  • Writer::getEndOfLine and Writer::setEndOfLine

Deprecated

  • EncloseField stream filter in favor of the new Writer::forceEnclosure method.
  • Writer::getNewline and Writer::setNewline in favor of Writer::getEndOfLine and Writer::setEndOfLine

Fixed

  • Stream::fwrite to allow writing to a file in a normalized way. Internal use.
  • Documentation Fixed removing unreleased documented feature by @nclavaud

Removed

  • None

9.9.0

1 year ago

Added

  • TabularDataWriter interface to represent how to write to a tabular data document.
  • TabularDataReader::first to replace TabularDataReader::fetchOne
  • TabularDataReader::nth to replace TabularDataReader::fetchOne
  • CharsetConverter::addBOMSkippingTo to improve BOM skipping see bug #483

Deprecated

  • TabularDataReader::fetchOne

Fixed

  • Stream::createFromResource

  • Stream::__construct is made private. The class is already marked as internal so BC break does not apply on it.

  • Using PHP8 feature to rewrite internal codebase

  • Replaced simple comparisons with strict comparison operator where types are obvious in internal codebase by @astepin

  • Marked class constants explicitly as public by @astepin

  • Minimal support version PHP8.1.2

  • Fix Docblock and method signature using PHP8 feature (Union Type)

  • Fix Internal codebase around seek usage and `#75917 requires PHP8.1.2

  • Remove internal usage of deprecated methods

Removed

  • Stream::fwrite The class is already marked as internal so BC break does not apply on it.
  • Stream::fgets The class is already marked as internal so BC break does not apply on it.
  • Drop support for PHP7 and PHP8.0
  • Polyfill to enable using fputcsv $eol argument

9.8.0

2 years ago

Added

  • Added PHP7.4 typed properties where applicable
  • TabularDataReader::fetchColumnByName to replace TabularDataReader::fetchColumn
  • TabularDataReader::fetchColumnByOffset to replace TabularDataReader::fetchColumn

Deprecated

  • TabularDataReader::fetchColumn use TabularDataReader::fetchColumnByOffset or TabularDataReader::fetchColumnByName instead

Fixed

  • AbstractCsv constructor is marked final via docblock.
    The method should never be extended or changed in child classes to avoid unexpected behaviour

Removed

  • PHP7.3 support
  • Remove internal EmptyEscapeParser Polyfill used in Reader class
  • Remove PHP7.4 polyfill features in Writer class

9.7.4

2 years ago

Added

  • None

Deprecated

  • None

Fixed

Removed

  • None

9.7.3

2 years ago

Added

  • None

Deprecated

  • None

Fixed

  • Update PHPStan requirement for development
  • Improve Documentation generation thanks to pdelre
  • PHP8.1 compliance: using ReturnTypeWillChange to avoid emitting a unnecessary deprecation notice. thanks to cedric-anne

Removed

  • None