Releases: thephpleague/csv
Releases Β· thephpleague/csv
version 9.20.1
version 9.20.0
Added
XMLConverter::formatter
HTMLConverter::formatter
Writer::encloseNone
Writer::encloseNecessary
Writer::noEnclosure
Deprecated
- None
Fixed
JsonConverter::formatter
now accepts callable before onlyClosure
where accepted.- The protected property
Writer::$enclose_all
is no longer a boolean but an integer
Removed
- None
version 9.19.0
Added
JsonConverter::withPrettyPrint
now accepts an optional$identSize
parameter as its unique parameter.Statement::when
to enable conditionable query building.- Using PHP8.4
Deprecated
attribute to signal deprecated public API methods and constants.
Deprecated
JsonConverter::indentSize
Fixed
- Adding forgotten support for
callable
in theQuery\Constraint
namespace. - Fix
HttpHeaders::forFileDownload
to be inline with RFC2183 and HTTP field name and value best practices.
Remove
- None
version 9.18.0
Added
League\Csv\JsonConverter::chunkSize
League\Csv\AbstractCsv::download
Deprecated
League\Csv\AbstractCsv::output
useLeague\Csv\AbstractCsv::download
insteadLeague\Csv\FragmentFinder
and derived methods are marked as experimental as their results will be changed in the next major version.
Fixed
League\Csv\JsonConverter::download
the filename is now nullableLeague\Csv\XMLConverter::download
the filename is now nullableLeague\Csv\JsonConverter::save
throws aTypeError
exception if the$destination
type is not supported.
Remove
- None
version 9.17.0
Added
League\Csv\SwapDelimiter::apppendTo
League\Csv\SwapDelimiter::prependTo
League\Csv\CharsetConverter::apppendTo
League\Csv\CharsetConverter::prependTo
League\Csv\XMLConverter::download
League\Csv\JsonConverter
League\Csv\Constraint\Criteria::andNot
League\Csv\Constraint\Criteria::orNot
League\Csv\Constraint\Criteria::xorNot
League\Csv\Serializer\MapRecord
attribute- adding the
convertEmptyStringToNull
options toMapCell
and toMapRecord
to improve string andnull
conversion - adding the
trimFieldValueBeforeCasting
options toMapCell
and toMapRecord
to improve string conversion - adding the
trimElementValueBeforeCasting
option toCasToArray
to improve conversion during denormalization - adding the
headerOffset
option toCasToArray
to improve conversion during denormalization. The optoon is only used with the CSV shape.
Deprecated
- None
Fixed
Cast*
methods accept more input type to improve Denormalization usage whenReader::addFormatter
is used or when the collection contains data other than string andnull
.Stream::getSize
is added to the internalStream
classStream::getContents
is added to the internalStream
classMapIterator::toIterator
is added to the internal classMapIterator
class to convert anyiterable
into anIterator
.- Casting a CSV to an
array
it now will be a collection of array instead of a simplearray
. - Added the internal class
HttpHeaders
to improve file download throughout the codebase.
Removed
leage\csv-doctrine
is no longer a sub-split of the mainleague/csv
package.
version 9.16.0
Added
Bom
enumStream::ftell
Statement::orderByAsc
Statement::orderByDesc
Statement::andWhere
Statement::whereNot
Statement::orWhere
Statement::xorWhere
Statement::andWhereColumn
Statement::whereNotColumn
Statement::orWhereColumn
Statement::xorWhereColumn
Statement::andWhereOffset
Statement::whereNotOffset
Statement::orWhereOffset
Statement::xorWhereOffset
Query
feature to allow easier filtering, ordering and querying tabular data
Deprecated
ByteSequence
Interface use theBom
enum insteadInfo::fetchBOMSequence
useBom::tryFromSequence
insteadLeague\Csv\Doctrine
use the newLeague\Csv\Constraint
feature insteadLeague\Csv\Statement::create
arguments; The method should be used without any argument at all. All arguments will be removed in the next major version.
Fixed
Reader
andResultSet
docblocks- internal code uses
Bom
enum instead ofInfo::fetchBOMSequence
- the
AbstractCsv
BOM related properties are moved to beingBom
instances instead of nullable string. setOutpuBOM
will only accept valid BOM sequences all other values except the empty string will throw aValueError
exception;- The package no longer requires the
ext-mbstring
extension to work. But you should have it install in your system in order to use thembstring
related stream filters. - Issue #524 fix issue with
ResultSet::chunkBy
not working as documented.
Removed
- None
version 9.15.0
Added
Statement::select
TabularDataReader::getRecordsAsObject
TabularDataReader::chunkBy
TabularDataReader::mapHeader
Deprecated
TabularDataReader::getObjects
useTabularDataReader::getRecordsAsObject
instead
Fixed
Reader::select
andResultSet::select
now internally useStatement::select
Statement
should not throw whenLimitIterator
is used in combinaison withArrayIterator
.Statement
internal codebase improvement.- Using the
$header
argument onStatement::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
version 9.14.0
Added
League\Csv\TabularDataReader::nthAsObject
equivalent tonth
but returns an object ornull
League\Csv\TabularDataReader::firstAsObject
equivalent tofirst
but returns an object or nullLeague\Csv\Serializer\Denormalizer::types
list all the registered types
Deprecated
- None
Fixed
- None
Removed
- None
version 9.13.0
Added
League\Csv\SwapDelimiter
stream filter to allow working with multibyte CSV delimiterLeague\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 propertyignore
to allow ignoring a property or a method during denormalization.
Deprecated
- None
Fixed
- None
Removed
- None
version 9.12.0
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 #508League\Csv\FragmentFinder
to implement RFC7111
Deprecated
- Using the
$header
argument onStatement::process
is deprecated and will be removed in
the next version. UseTabularDataReader::getRecords
on the returned value instead.
It's usage will trigger aE_USER_DEPRECATED
call.
Fixed
- The optional
$header
argument forTabularDataReader;;getRecords
becomes a full mapper between the records column offset and the column names #498 ResultSet
constructor now allows the records to be anarray
.- The internal
Stream
object will throw aRuntimeException
if the rewind action fails - if calls to
fseek
fails (returns-1
) aRuntimeException
will be thrown. Stream
can iterate and return the full line respectingSplFielObject
flags. Previously it only returned the CSV records.MapIterator::fromIterable
to instantiate aMapIterator
object from any iterable structure.
Removed
- None