Releases: thephpleague/csv
Releases · thephpleague/csv
version 8.2.3
Added
- None
Deprecated
- None
Fixed
Reader::fetchAssocno longer throws exception because of a bug in PHP7.2+ issue #279
Removed
- None
version 9.1.2
Added
- Nothing
Deprecated
- Nothing
Fixed
is_iterablepolyfill for PHP7.0Reader::getHeaderno longer throws exception because of a bug in PHP7.2+ issue #279
Removed
- Nothing
version 9.1.1
Added
- Nothing
Deprecated
- Nothing
Fixed
-
issue with
error_get_lastusage when using a modified PHP error handler see #254 - fixed by @csiszarattila -
Removed seekable word from Stream exception messages.
Removed
- Nothing
version 9.1.0
Added
- Support for non seekable stream. When seekable feature are required an exceptions will be thrown.
League\Csv\EncloseFieldto force enclosure insertion on every field. #269League\Csv\EscapeFormulaa League CSV formatter to prevent CSV Formula Injection in Spreadsheet programs.League\Csv\RFC4180Field::addToaccept an option$replace_whitespaceargument to improve RFC4180 compliance.League\Csv\Abstract::getContentto replaceLeague\Csv\Abstract::__toString. The__toStringmethod may trigger a Fatal Error with non seekable stream, instead you are recommended to used the newgetContentmethod which will trigger an exception instead.
Deprecated
League\Csv\Abstract::__toStringuseLeague\Csv\Abstract::getContentinstead. the__toStringtriggers a Fatal Error when used on a non-seekable CSV document. use thegetContentmethod instead which will trigger an exception instead.
Fixed
- Bug fixes headers from
AbstractCsv::outputaccording toRFC6266#250 - Make sure the internal source still exists before closing it #251
- Make sure the
Reader::createFromPathdefault open mode isrsee #258 and #266
Removed
- Nothing
version 9.0.1
Added
- Nothing
Deprecated
- Nothing
Fixed
- CSV controls not applied when calling Writer::insertOne see issue #244
Removed
- Nothing
version 9.0.0
Added
- Improved CSV Records selection
League\Csv\Reader::getRecordsto access all CSV recordsLeague\Csv\Statementprovides a constraint builder to select CSV records.League\Csv\ResultSetrepresents the result set of the selected CSV records.League\Csv\delimiter_detectfunction to detect CSV delimiter character
- Improved CSV document header selection.
League\Csv\Reader::getHeaderLeague\Csv\Reader::getHeaderOffsetLeague\Csv\Reader::setHeaderOffset
- Improved CSV Records conversion
League\Csv\CharsetConverterconverts CSV records charset.League\Csv\XMLConverterconverts CSV records into DOMDocumentLeague\Csv\HTMLConverterconverts CSV records into HTML table.
- Improved Exception handling
League\Csv\Exceptionthe default exceptionLeague\Csv\CannotInsertRecord
- Improved CSV document output
League\Csv\AbstractCsv::chunkmethod to output the CSV document in chunkLeague\Csv\bom_matchfunction to detect BOM sequence in a given stringLeague\Csv\ByteSequenceinterface 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::setFlushThresholdLeague\Csv\Writer::getFlushThreshold
- Improve RFC4180 compliance
League\Csv\RFC4180Fieldto format field according to RFC4180 rules
Deprecated
- Nothing
Fixed
-
Improved CSV record insertion
League\Csv\Writer::insertOneonly accepts an array and returns a integerLeague\Csv\Writer::insertAllonly accepts an iterable of array and returns an integer
-
Normalized CSV offset returned value
League\Csv\Reader::fetchColumnalways returns the CSV document original offset.
Removed
examplesdirectoryPHP5/HHVMsupport- 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::jsonSerializeLeague\Csv\AbstractCsv::toHTMLLeague\Csv\AbstractCsv::toXMLLeague\Csv\AbstractCsv::setInputEncodingLeague\Csv\AbstractCsv::getInputEncoding
- The following methods are removed because the PHP stream filter API is simplified:
League\Csv\AbstractCsv::isActiveStreamFilterLeague\Csv\AbstractCsv::setStreamFilterModeLeague\Csv\AbstractCsv::appendStreamFilterLeague\Csv\AbstractCsv::prependStreamFilterLeague\Csv\AbstractCsv::removeStreamFilterLeague\Csv\AbstractCsv::clearStreamFilters
- The following methods are removed because switching between connections is no longer possible:
League\Csv\AbstractCsv::newReaderLeague\Csv\AbstractCsv::newWriterLeague\Csv\Reader::getNewlineLeague\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\Statementclass: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::eachLeague\Csv\Reader::fetchLeague\Csv\Reader::fetchAllLeague\Csv\Reader::fetchAssocLeague\Csv\Reader::fetchPairsWithoutDuplicates
- Formatting and validating CSV records on insertion is simplified, the following methods are removed:
League\Csv\Writer::hasFormatterLeague\Csv\Writer::removeFormatterLeague\Csv\Writer::clearFormattersLeague\Csv\Writer::hasValidatorLeague\Csv\Writer::removeValidatorLeague\Csv\Writer::clearValidators
- The following Formatters and Validators classes are removed from the package:
League\Csv\Plugin\SkipNullValuesFormatterLeague\Csv\Plugin\ForbiddenNullValuesValidatorLeague\Csv\Plugin\ColumnConsistencyValidatorreplace byLeague\Csv\ColumnConsistency
League\Csv\Writerno longers implements theIteratorAggregateinterfaceLeague\Csv\AbstractCsv::fetchDelimitersOccurrenceis removed replace byLeague\Csv\delimiter_detectfunction
version 8.2.2
Added
- None
Deprecated
- None
Fixed
Writer::insertOnewas silently failing when inserting record in a CSV document in non-writing mode.- bug fix docblock
Removed
- None
version 8.2.1
Added
- None
Deprecated
- None
Fixed
- internal
Reader::getRowwhen using aStreamIteratorissue #213 - Removed
@deprecatedfrom selected methods issue #208
Removed
- None
version 8.2.0
Added
AbstractCsv::createFromStreamto enable working with resource stream issue #202
Deprecated
League\Csv\AbstractCsv::stripBomLeague\Csv\Reader::getOffsetLeague\Csv\Reader::getLimitLeague\Csv\Reader::getSortByLeague\Csv\Reader::getFilterLeague\Csv\Reader::setOffsetLeague\Csv\Reader::setLimitLeague\Csv\Reader::addSortByLeague\Csv\Reader::addFilterLeague\Csv\Reader::fetchLeague\Csv\Reader::eachLeague\Csv\Reader::fetchPairsWithoutDuplicatesLeague\Csv\Reader::fetchAssocLeague\Csv\Writer::removeFormatterLeague\Csv\Writer::hasFormatterLeague\Csv\Writer::clearFormattersLeague\Csv\Writer::removeValidatorLeague\Csv\Writer::hasValidatorLeague\Csv\Writer::clearValidatorsLeague\Csv\Writer::jsonSerializeLeague\Csv\Writer::toHTMLLeague\Csv\Writer::toXML
Fixed
- None
Removed
- None
version 8.1.2
Added
- None
Deprecated
- None
Fixed
- BOM filtering fix issue #184
AbstractCsv::BOM_UTF32_LEvalue fixed
Removed
- None