@nyamsprod nyamsprod released this May 1, 2018 · 7 commits to master since this release

Assets 2

Added

  • Nothing

Deprecated

  • Nothing

Fixed

  • Writer::setFlushThreshold should accept 1 as an argument #289

  • CharsetConverter::convert should not try to convert numeric value #287

Removed

  • Nothing

@nyamsprod nyamsprod released this Mar 12, 2018 · 10 commits to master since this release

Assets 2

Added

  • Nothing

Deprecated

  • Nothing

Fixed

  • Writer::insertOne allow empty array to be added to the CSV (allow inserting empty row)
  • Removed all return type from named constructor see #285
  • Added PHPStan for static code analysis

Removed

  • Nothing

@nyamsprod nyamsprod released this Feb 6, 2018

Assets 2

Added

  • None

Deprecated

  • None

Fixed

  • Reader::fetchAssoc no longer throws exception because of a bug in PHP7.2+ issue #279

Removed

  • None

@nyamsprod nyamsprod released this Feb 5, 2018 · 22 commits to master since this release

Assets 2

Added

  • Nothing

Deprecated

  • Nothing

Fixed

  • is_iterable polyfill for PHP7.0
  • Reader::getHeader no longer throws exception because of a bug in PHP7.2+ issue #279

Removed

  • Nothing

@nyamsprod nyamsprod released this Nov 28, 2017 · 30 commits to master since this release

Assets 2

Added

  • Nothing

Deprecated

  • Nothing

Fixed

  • issue with error_get_last usage when using a modified PHP error handler see #254 - fixed by @csiszarattila

  • Removed seekable word from Stream exception messages.

Removed

  • Nothing

@nyamsprod nyamsprod released this Oct 20, 2017 · 38 commits to master since this release

Assets 2

Added

  • Support for non seekable stream. When seekable feature are required an exceptions will be thrown.
  • League\Csv\EncloseField to force enclosure insertion on every field. #269
  • League\Csv\EscapeFormula a League CSV formatter to prevent CSV Formula Injection in Spreadsheet programs.
  • League\Csv\RFC4180Field::addTo accept an option $replace_whitespace argument to improve RFC4180 compliance.
  • League\Csv\Abstract::getContent to replace League\Csv\Abstract::__toString. The __toString method may trigger a Fatal Error with non seekable stream, instead you are recommended to used the new getContent method which will trigger an exception instead.

Deprecated

  • League\Csv\Abstract::__toString use League\Csv\Abstract::getContent instead. the __toString triggers a Fatal Error when used on a non-seekable CSV document. use the getContent method instead which will trigger an exception instead.

Fixed

  • Bug fixes headers from AbstractCsv::output according to RFC6266 #250
  • Make sure the internal source still exists before closing it #251
  • Make sure the Reader::createFromPath default open mode is r see #258 and #266

Removed

  • Nothing

@nyamsprod nyamsprod released this Aug 22, 2017 · 63 commits to master since this release

Assets 2

Added

  • Nothing

Deprecated

  • Nothing

Fixed

  • CSV controls not applied when calling Writer::insertOne see issue #244

Removed

  • Nothing

@nyamsprod nyamsprod released this Aug 18, 2017 · 64 commits to master since this release

Assets 2

Added

  • Improved CSV Records selection
    • League\Csv\Reader::getRecords to access all CSV records
    • League\Csv\Statement provides a constraint builder to select CSV records.
    • League\Csv\ResultSet represents the result set of the selected CSV records.
    • League\Csv\delimiter_detect function to detect CSV delimiter character
  • Improved CSV document header selection.
    • League\Csv\Reader::getHeader
    • League\Csv\Reader::getHeaderOffset
    • League\Csv\Reader::setHeaderOffset
  • Improved CSV Records conversion
    • League\Csv\CharsetConverter converts CSV records charset.
    • League\Csv\XMLConverter converts CSV records into DOMDocument
    • League\Csv\HTMLConverter converts CSV records into HTML table.
  • Improved Exception handling
    • League\Csv\Exception the default exception
    • League\Csv\CannotInsertRecord
  • Improved CSV document output
    • League\Csv\AbstractCsv::chunk method to output the CSV document in chunk
    • League\Csv\bom_match function to detect BOM sequence in a given string
    • League\Csv\ByteSequence interface to decoupled BOM sequence from CSV documents
  • Improved CSV records column count consistency on insertion
    • League\Csv\ColumnConsistency
  • Improved CSV document flush mechanism on insertion
    • League\Csv\Writer::setFlushThreshold
    • League\Csv\Writer::getFlushThreshold
  • Improve RFC4180 compliance
    • League\Csv\RFC4180Field to format field according to RFC4180 rules

Deprecated

  • Nothing

Fixed

  • Improved CSV record insertion

    • League\Csv\Writer::insertOne only accepts an array and returns a integer
    • League\Csv\Writer::insertAll only accepts an iterable of array and returns an integer
  • Normalized CSV offset returned value

    • League\Csv\Reader::fetchColumn always returns the CSV document original offset.

Removed

  • examples directory
  • PHP5/HHVM support
  • The following method is removed because The BOM sequence is now automatically stripped:
    • League\Csv\AbstractCsv::stripBOM
  • All conversion methods are removed in favor of conversion classes:
    • League\Csv\Writer::jsonSerialize
    • League\Csv\AbstractCsv::toHTML
    • League\Csv\AbstractCsv::toXML
    • League\Csv\AbstractCsv::setInputEncoding
    • League\Csv\AbstractCsv::getInputEncoding
  • The following methods are removed because the PHP stream filter API is simplified:
    • League\Csv\AbstractCsv::isActiveStreamFilter
    • League\Csv\AbstractCsv::setStreamFilterMode
    • League\Csv\AbstractCsv::appendStreamFilter
    • League\Csv\AbstractCsv::prependStreamFilter
    • League\Csv\AbstractCsv::removeStreamFilter
    • League\Csv\AbstractCsv::clearStreamFilters
  • The following methods are removed because switching between connections is no longer possible:
    • League\Csv\AbstractCsv::newReader
    • League\Csv\AbstractCsv::newWriter
    • League\Csv\Reader::getNewline
    • League\Csv\Reader::setNewline
  • The Exception mechanism is improved thus the following class is removed:
    • League\Csv\Exception\InvalidRowException;
  • The CSV records filtering methods are removed in favor of the League\Csv\Statement class:
    • League\Csv\AbstractCsv::addFilter,
    • League\Csv\AbstractCsv::addSortBy,
    • League\Csv\AbstractCsv::setOffset,
    • League\Csv\AbstractCsv::setLimit;
  • The following methods are removed as CSV records selection is simplified:
    • League\Csv\Reader::each
    • League\Csv\Reader::fetch
    • League\Csv\Reader::fetchAll
    • League\Csv\Reader::fetchAssoc
    • League\Csv\Reader::fetchPairsWithoutDuplicates
  • Formatting and validating CSV records on insertion is simplified, the following methods are removed:
    • League\Csv\Writer::hasFormatter
    • League\Csv\Writer::removeFormatter
    • League\Csv\Writer::clearFormatters
    • League\Csv\Writer::hasValidator
    • League\Csv\Writer::removeValidator
    • League\Csv\Writer::clearValidators
  • The following Formatters and Validators classes are removed from the package:
    • League\Csv\Plugin\SkipNullValuesFormatter
    • League\Csv\Plugin\ForbiddenNullValuesValidator
    • League\Csv\Plugin\ColumnConsistencyValidator replace by League\Csv\ColumnConsistency
  • League\Csv\Writer no longers implements the IteratorAggregate interface
  • League\Csv\AbstractCsv::fetchDelimitersOccurrence is removed replace by League\Csv\delimiter_detect function

@nyamsprod nyamsprod released this Jul 12, 2017 · 4 commits to 8.x since this release

Assets 2

Added

  • None

Deprecated

  • None

Fixed

  • Writer::insertOne was silently failing when inserting record in a CSV document in non-writing mode.
  • bug fix docblock

Removed

  • None

@nyamsprod nyamsprod released this Feb 23, 2017 · 7 commits to 8.x since this release

Assets 2

Added

  • None

Deprecated

  • None

Fixed

  • internal Reader::getRow when using a StreamIterator issue #213
  • Removed @deprecated from selected methods issue #208

Removed

  • None