keboola/php-csvtable
A PHP library for reading and writing CSV tables, offering an object-oriented API over CSV files with configurable delimiters, enclosures, and escaping. It follows Keboola CSV conventions and provides utilities for manipulating tabular data in PHP applications.
CsvTable abstraction over CSV files: load content, inspect columns and rows, configure delimiter/enclosure, write back out. For most products that is undifferentiated plumbing. The decision it most directly supports is whether to spend engineering cycles writing and owning a homegrown CSV utility or absorb a thin dependency and redirect that effort to product surface area.keboola/csv bump — no API changes, no deprecations), adopting it carries no migration work and no sequencing impact on other roadmap items. That is the kind of dependency you can slot into a sprint without re-planning.Adopt when:
keboola/csv.Look elsewhere when:
For executives: This is a small, low-risk PHP/Laravel library that handles the CSV reading, filtering, sorting, and writing behind data imports, exports, and reports. The current release (2.2.0) is pure housekeeping — static-analysis and coding-standard fixes, a license file, and a routine dependency update. There are no breaking changes, no new features, and no migration work. The license addition clears a compliance checkpoint that would otherwise block commercial distribution. The trade-off to acknowledge: it is a single-vendor package with essentially no external adoption and no release since April 2023. We are buying a stable primitive, not an ecosystem. Net: it removes custom code we would otherwise build and own, at negligible ongoing cost, provided we isolate it so it can be replaced.
For engineering: Treat it as infrastructure, not a Laravel package — no service provider, no config, no facade. composer require, pin to ^2.2, and review the resolved keboola/csv transitive version in composer.lock. Put it behind an internal CsvReader/CsvWriter contract so call sites never depend on Keboola classes and a swap to league/csv or native handling stays a contained piece of work. The real engineering risk is not installation but CSV edge cases — delimiters, quoting, embedded newlines, BOM, non-UTF-8 input, memory behavior on large files — so build the contract test suite and golden-file fixtures up front. Pilot in one ingestion path behind a flag, then roll out. Record the decision in an ADR, including the low-adoption and stale-release caveats, so the rationale survives the next dependency review.
How can I help you explore Laravel packages today?