Releases: thephpleague/csv
Releases · thephpleague/csv
version 9.11.0
Added
EscapeFormula::unescapeRecord
does the opposite ofEscapeFormula::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
useEscapeFormula::__escapeRecord
instead
Fixed
- None
Removed
- None
version 9.10.0
Added
Writer::forceEnclosure
andWriter::relaxEnclosure
to control the presence of enclosure in the generated CSVWriter::getEndOfLine
andWriter::setEndOfLine
Deprecated
EncloseField
stream filter in favor of the newWriter::forceEnclosure
method.Writer::getNewline
andWriter::setNewline
in favor ofWriter::getEndOfLine
andWriter::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
version 9.9.0
Added
TabularDataWriter
interface to represent how to write to a tabular data document.TabularDataReader::first
to replaceTabularDataReader::fetchOne
TabularDataReader::nth
to replaceTabularDataReader::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
version 9.8.0
Added
- Added PHP7.4 typed properties where applicable
TabularDataReader::fetchColumnByName
to replaceTabularDataReader::fetchColumn
TabularDataReader::fetchColumnByOffset
to replaceTabularDataReader::fetchColumn
Deprecated
TabularDataReader::fetchColumn
useTabularDataReader::fetchColumnByOffset
orTabularDataReader::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 inReader
class - Remove PHP7.4 polyfill features in
Writer
class
version 9.7.4
Added
- None
Deprecated
- None
Fixed
- Bug fix
EscapeFormula
to follow OWASP latest recommendation PR #452
thanks to @robertfausk and @Lehmub
Removed
- None
version 9.7.3
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
version 9.7.2
Added
- None
Deprecated
- None
Fixed
- Update dependencies requirement for development
- PHP8.1 compliance: replace
FILTER_SANITIZE_STRING
byFILTER_UNSAFE_RAW
- PHP8.1 compliance: remove duplicated public properties declaration
- PHP8.1 compliance: add support for fputcsv
$eol
argument
Removed
- None
version 9.7.1
version 9.7.0
Added
League\Csv\SyntaxError::duplicateColumnNames
to expose column name duplicates during header usageLeague\Csv\UnableToProcessCsv
as the new Exception Marker InterfaceLeague\Csv\UnavailableStream
as the new ExceptionLeague\Csv\Info::getDelimiterStats
to replace the namespace functiondelimiter_detect
League\Csv\Info::fetchBOMSequence
to replace the namespace functionbom_match
League\Csv\AbstractCsv::toString
to replaceLeague\Csv\AbstractCsv::getContent
andLeague\Csv\AbstractCsv::__toString
League\Csv\XMLConverter::create
to replaceLeague\Csv\XMLConverter::__construct
League\Csv\HTMLConverter::create
to replaceLeague\Csv\HTMLConverter::__construct
League\Csv\AbstractCsv::supportsStreamFilterOnRead
andLeague\Csv\AbstractCsv::supportsStreamFilterOnWrite
to replaceLeague\Csv\AbstractCsv::supportsStreamFilter
andLeague\Csv\AbstractCsv::getStreamFilterMode
Deprecated
League\Csv\delimiter_detect
useLeague\Csv\Info::getDelimiterStats
League\Csv\bom_match
useLeague\Csv\Info::fetchBOMSequence
League\Csv\AbstractCsv::getContent
useLeague\Csv\AbstractCsv::toString
League\Csv\AbstractCsv::getStreamFilterMode
useLeague\Csv\AbstractCsv::supportsStreamFilterOnRead
orLeague\Csv\AbstractCsv::supportsStreamFilterOnWrite
League\Csv\AbstractCsv::supportsStreamFilter
useLeague\Csv\AbstractCsv::supportsStreamFilterOnRead
orLeague\Csv\AbstractCsv::supportsStreamFilterOnWrite
- Calling exceptions constructor, use named constructors instead.
League\Csv\XMLConverter::__construct
useLeague\Csv\XMLConverter::create
League\Csv\HTMLConverter::__construct
useLeague\Csv\HTMLConverter::create
Fixed
- Move tests into the
src
directory - Fixed encoder method resolver implementation
- all classes marked as
@internal
are now final League\Csv\AbstractCsv::STREAM_FILTER_MODE
constant replacesLeague\Csv\AbstractCsv::$stream_filter_mode
Removed
- Support for PHP7.2
League\Csv\AbstractCsv::$stream_filter_mode