hoa/cli
Hoa\Cli is a PHP library for building command-line interfaces, offering abstractions for commands, arguments, options, input/output, and terminal interaction. It fits the modular Hoa ecosystem for structured CLI application development.
argv into named options and arguments, and writing formatted output to a terminal. The decision it informs is whether a product adds a third-party CLI layer for internal tooling (ops scripts, code generators, scheduled maintenance commands, admin-only binaries) or uses what the framework already ships.hoa/cli therefore produces a "no incremental capability" finding — a useful, citable data point when someone proposes adding a CLI dependency.InputDefinition; it is not worth importing as code.Verdict this assessment supports: do not adopt. Use the framework's existing console layer; treat hoa/cli as a design reference only.
Adoption criteria — all would have to hold simultaneously:
hoa/consistency, hoa/ustring, and related Hoa modules, so hoa/cli adds no new dependency surface.hoa/console, a different and larger package).Look elsewhere when any of the following is true — which is the normal case:
composer require rather than a fair evaluation.Preferred alternatives, in order: Symfony Console (already a transitive dependency in any Laravel app — zero new surface), Laravel's own command and prompt APIs for in-app tooling, Laravel Zero or Minicli for standalone CLI products, and any of the actively maintained output-formatting libraries for presentation concerns. Adopt only what you cannot get from the dependency tree you already have.
Executive summary. A proposal surfaced to add hoa/cli, a PHP console/argument-parsing library, to our tooling. Recommendation: decline. The capability it provides — turning command-line flags into structured options and printing to a terminal — is already delivered by the console layer we get for free through our framework. Adopting this package would add a dependency without adding a capability, and it carries the specific risk profile we try to avoid: the project is archived, its last release was July 2017, it has 12 stars and zero dependent packages, and it has therefore never been exercised against a modern PHP runtime by anyone but its original author. The practical outcome is a short-term convenience paid for with a long-term maintenance and security obligation we cannot discharge. Cost of adoption exceeds benefit; the correct decision is to consume the framework's built-in console tooling and, if the team likes the declarative option-definition style, adopt that as an internal convention at zero dependency cost.
For engineering. Run a one-hour timeboxed spike if anyone wants the negative result on record: attempt composer require hoa/cli on our current PHP version, then port a trivial command. Expect resolution or deprecation friction. Either way, the recommendation stands — Symfony Console via Artisan covers option definitions, validation, help text, interactivity, and output formatting, and it is maintained by people whose job that is. There is no functional gap here to close.
What we are deliberately not doing, and why it's low-risk. We are not blocking future CLI investment. If a genuine need appears — a distributable CLI product, or richer terminal interaction inside the app — the answer is a maintained package evaluated on its own merits, not a resurrected one. Keeping an archived component out of the tree now preserves that optionality rather than spending it.
How can I help you explore Laravel packages today?