Skip to content

Releases

version 9.29.0

Choose a tag to compare

@nyamsprod nyamsprod released this 28 Oct 08:59

Added

  • Support for Closure in constant expressions during Record Mapping.
  • AbstractCsv::fromStream to instantiate a Reader or a Writer instance from a stream or a SplFileObject object
  • AbstractCsv::fromPath to instantiate a Reader or a Writer instance from a path as a string or a SplFileInfo object
  • Support for SortDirection enum from PHP 8.6+ - #580 by okorneliuk
  • Record inference feature
  • Added missing Buffer::value method

Deprecated

  • None

Fixed

  • Reduce the runtime and peak memory usage of JsonConverter pretty printing.
  • SwapDelimiter::prependTo now prepends the stream filter instead of appending it.
  • Writer::forceEnclosure now doubles embedded enclosures when the escape character is the empty string.
  • EscapeFormula round-trip now preserves fields starting with the escape character
  • BOM handling is re-written to fix #586
  • CSV Header during CSV download.
  • Remove ArrayIterator::uasort usage because the method is deprecated in PHP8.6.
  • Use STREAM_FILTER_WRITE in prependStreamFilterOnWrite method - #577 by zigzagdev
  • Initialize $callback property to null to prevent uninitialized property - #576 by zigzagdev
  • Fix EscapeFormula round-trip - #583 by binggao1230
  • Leave an empty field untouched in EscapeFormula::escapeField - #593 by lenamonj
  • Fix TimeField separator - #592 by lenamonj
  • Fix Buffer::nth and Buffer::nthASObject #594 by dualfroz
  • Fix FragmentFinder::findFirst crashing see issue #596
  • Fix FragmentFinder ignoring row and column ranges whose start and end are the same, like row=4-4 - #599 by ybai08
  • Fix FragmentFinder ignoring positions written with leading zeros, like row=05-07, which RFC 7111 allows - #600 by ybai08
  • Fix CharsetConverter decoding UTF-16 and UTF-32 input with the wrong byte order after the first chunk when the stream starts with a little-endian BOM - #602 by wleeaf
  • Fix Reader returning an extra empty record at the end of an SplFileObject document when empty records are included - #603 by wleeaf
  • Fix the NOT BETWEEN and NOT_BETWEEN comparison operators being resolved to BETWEEN - #604 by wleeaf
  • Fix query constraints and orderings throwing an ArgumentCountError when the column value is resolved through an object __call method - #605 by youdie006
  • TabularData::value now supports negative column offset. Before null was always returned; now null is only returned if the column offset does not exist.

Remove

  • Support for PHP8.1

version 9.28.0

Choose a tag to compare

@nyamsprod nyamsprod released this 27 Dec 15:21

Added

  • EnumFormatter to format Enum for CSV serialization

Deprecated

  • None

Fixed

  • None

Remove

  • None

This is the last version supporting PHP8.1

version 9.27.1

Choose a tag to compare

@nyamsprod nyamsprod released this 25 Oct 08:38

Added

  • None

Deprecated

  • None

Fixed

  • AbstractCsv::download improved implementation see #569

Remove

  • None

version 9.27.0

Choose a tag to compare

@nyamsprod nyamsprod released this 16 Oct 09:24

Added

  • AbstractCsv::from and AbstractCsv::fromString to simplify instantiating Reader and Writer instance.
  • Stream::from and Stream::fromString to simplify internal instantiation of Stream instances.

Deprecated

  • AbstractCsv::createFromString use AbstractCsv::fromString instead
  • AbstractCsv::createFromStream use AbstractCsv::from instead
  • AbstractCsv::createFromFileObject use AbstractCsv::from instead
  • Stream::createFromResource use Stream::from instead
  • Stream::createFromString use Stream::fromString instead

Fixed

  • `None

Remove

  • None

version 9.26.0

Choose a tag to compare

@nyamsprod nyamsprod released this 01 Oct 11:28

Added

  • JsonFormat::NdJsonHeader and JsonFormat::NdJsonHeaderLess
  • JsonConverter conversion methods accept an optional $header parameter to handle the new JSON formats.
  • Writer::insertAll and converter classes convert methods now accept TabularData and TabularDataProvider implementing classes

Deprecated

  • None

Fixed

  • Adding an internal Warning class to fix warnings triggering in the codebase.
  • Fix chunkSize usage when NDJson is generated by the JsonConverter class.
  • NdJson/Jsonlines content-type is fixed to application/x-ndjson.

Remove

  • None

version 9.25.0

Choose a tag to compare

@nyamsprod nyamsprod released this 11 Sep 08:31

Added

  • JsonFormat Enum to allow exporting to JsonLines with the JsonConverter object.
  • TabularDataProvider interface to allow connecting to the package features without implementing all the methods.

Deprecated

  • None

Fixed

  • Fix test around equality, PHPUnit and closures #568
  • Added support for PHP8.5 in github actions
  • Ensure DOMDocument::createTextNode() receives a string #567 by serpentblade

Remove

  • None

version 9.24.1

Choose a tag to compare

@nyamsprod nyamsprod released this 25 Jun 15:06

Added

  • None

Deprecated

  • None

Fixed

  • Fix possible memory leaks with the Writer class #563 - thanks to pope-12

Remove

  • None

version 9.24.0

Choose a tag to compare

@nyamsprod nyamsprod released this 24 Jun 19:56

Added

  • TabularData::last and TabularData::lastAsObject

Deprecated

  • None

Fixed

  • Improved implementation for AbstractCsv::download method

Remove

  • None

version 9.23.0

Choose a tag to compare

@nyamsprod nyamsprod released this 28 Mar 06:53

Added

  • TypeCastingInfo to improve error message when type casting fails during denormalization #561

Deprecated

  • fetchColumnByOffset and fetchColumnByName use fetchColumn instead.

Fixed

  • Test suite around header testing using Xdebug functions #559

Remove

  • None

version 9.22.0

Choose a tag to compare

@nyamsprod nyamsprod released this 28 Feb 10:03

Added

  • Writer::necessaryEnclosure
  • TabularDataReader::selectAllExcept
  • Statement::selectAllExcept
  • ResultSet::from and ResultSet::tryFrom
  • RdbmsResult class to ease importing RDBMS result into the package classes
  • TabularData interface
  • Buffer class
  • XMLConverter::supportsHeader
  • XMLConverter::when
  • HTMLConverter::when
  • JsonConverter::when
  • CharsetConverter::appendOnReadTo, CharsetConverter::appendOnWriteTo, CharsetConverter::prependOnReadTo, CharsetConverter::prependOnWriteTo

Deprecated

  • Writer::relaxEnclosure use Writer::necessaryEnclosure
  • ResultSet::createFromTabularDataReader use ResultSet::from
  • ResultSet::createFromRecords use ResultSet::from
  • ResultSet::__construct is marked as being internal and deprecated before being made private use ResultSet::from
  • XMLConverter::convert use XMLConverter::import instead
  • XMLConverter::create use XMLConverter::__construct instead
  • HTMLConverter::create use HTMLConverter::__construct instead
  • Statement::create use Statement::__construct instead
  • FragmentFinder::create use FragmentFinder::__construct instead
  • CharsetConverter::appendTo, CharsetConverter::prependTo use the more strict methods added on the instance

Fixed

  • Comparison::CONTAINS must check the value is a string before calling str_compare #548 by cage-is
  • Fix testing to improve Debian integration #549 by David Prévot and tenzap
  • Bom::tryFromSequence and Bom::fromSequence supports the Reader and Writer classes.
  • XMLConverter::$formatter should not be public.
  • XMLConverter internal rewritten to take advantage of PHP8.4 new dom classes
  • HTMLConverter internal rewritten to take advantage of PHP8.4 new dom classes
  • XMLConverter::fieldElement now has a nullable field element to allow using headers names as cell names.

Removed

  • None