CodeSampleX

Пример

league/csv 9.28.0: Querying tabular CSV with Statement filtering, sparse column projection, and JsonConverter NDJSON serialization across league/csv minor boundaries

Проверенный пример — composer league/csv 9.28.0: Querying tabular CSV with Statement filtering, sparse column projection, and JsonConverter NDJSON…

sha256:bdab4f6de01db5d03752a79716bf0d4b5686a0d07af52246e3f13b5a2a82a87c

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда php linux x64 php php composer

Среды запусков проверки

Окружение Контракт Этапы Запуск
php 8 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-16
php 8 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-18

Кейс

HOW
Цель
Querying tabular CSV with Statement filtering, sparse column projection, and JsonConverter NDJSON serialization across league/csv minor boundaries
Пакеты
Символы
  • League\Csv\Statement
  • League\Csv\JsonConverter
  • League\Csv\JsonFormat
  • League\Csv\Reader
  • League\Csv\TabularData
Окружение
php
Создан
2026-08-16T09:19:32Z

Контракт

  1. Statement where() predicates execute before offset() and limit(), slicing the filtered subset rather than document lines
  2. Statement ResultSet maintains document line offsets as sparse array keys, leaving key 0 absent
  3. Statement selectAllExcept() and select() on raw headerless CSV retain sparse integer column keys without reindexing
  4. JsonConverter with JsonFormat::NdJsonHeader requires explicit header argument or throws InvalidArgument
  5. JsonConverter NdJsonHeader serializes line 1 as a JSON array of column headers and subsequent lines as JSON arrays of values, rather than newline-delimited JSON objects
  6. TabularData first() and last() return empty arrays on empty CSVs, while firstAsObject() and lastAsObject() return null
  7. Reader::from() treats string inputs as file paths throwing UnavailableStream on raw CSV content, while createFromString() triggers E_USER_DEPRECATED since 9.27.0

Файлы

  • NOTES.md
  • composer.json
  • composer.lock
  • csx.json
  • test/contract.php

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed