pear/console_table
PEAR Console_Table is a PHP library for rendering clean, aligned text tables in terminal and console output. It supports headers, rows, column alignment, padding, borders, auto-sizing, and flexible formatting, making CLI reports and command-line data displays easy to build.
artisan commands that print status reports, migration/seed summaries, batch job results, data reconciliation diffs, and ops runbooks. This is a presentation concern, not a product capability.composer.lock, it is a marker of PEAR-era lineage and a useful signal when estimating upgrade effort (PHP version bumps, dependency audits, security review questionnaires).Consider only when all of the following hold:
Look elsewhere when any of the following is true:
symfony/console's Table helper ships transitively with Artisan, is maintained, supports styles, wrapping, and separators, and adds no new dependency. This is the default answer; choosing anything else requires justification.league/climate or nunomaduro/termwind instead of stacking packages.To executives (30 seconds): This is a small, single-purpose utility that draws text tables in command-line output. It is not a product feature, it does not touch customers, and it carries no revenue upside. The only material fact is that it is archived and unmaintained, which means a small but permanent line item in our dependency-risk and security-review overhead. Recommendation: do not adopt for new work; tolerate it where it already exists and retire it opportunistically. Cost to replace is measured in hours, not sprints — this is a housekeeping decision, not a roadmap one.
To engineering: Formatting tables is a solved, commodity problem and we should not be paying for it twice. On any new CLI work, use symfony/console's Table — it is already in the tree via Artisan, it is actively maintained, and it covers everything this package does plus styling and wrapping. Where pear/console_table is already in use, do not rip it out as a standalone task; instead apply a "touch it, migrate it" rule: the next time a command that uses it is modified for another reason, port that command to symfony/console Table in the same PR. This caps exposure without creating a speculative refactor project. Add the package to the dependency-risk register with a note that it is archived and has no upstream, so it does not silently block a future PHP upgrade.
Net position: No-go for new adoption; contained tolerance for existing usage; small, opportunistic migration budget.
How can I help you explore Laravel packages today?