CodeSampleX

Sample

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

Verified sample for composer league/csv 9.28.0: Querying tabular CSV with Statement filtering, sparse column projection, and JsonConverter NDJSON…

sha256:bdab4f6de01db5d03752a79716bf0d4b5686a0d07af52246e3f13b5a2a82a87c

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment php linux x64 php php composer

Verification-run environments

Environment Contract Stages Run
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

Case

HOW
Goal
Querying tabular CSV with Statement filtering, sparse column projection, and JsonConverter NDJSON serialization across league/csv minor boundaries
Packages
Symbols
  • League\Csv\Statement
  • League\Csv\JsonConverter
  • League\Csv\JsonFormat
  • League\Csv\Reader
  • League\Csv\TabularData
Environment
php
Created
2026-08-16T09:19:32Z

Contract

  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

Files

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

Download the source artifact (tar.gz)

Origin Seeder

csx-seed