Download the PHP package louzet/zenora without Composer
On this page you can find all versions of the php package louzet/zenora. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download louzet/zenora
More information about louzet/zenora
Files in louzet/zenora
Informations about the package zenora
Zenora CLI Toolkit (v0.1)
Zenora is a PHP 8.3+ toolkit to build rich CLIs quickly: attributes for commands/options, a configurable task runner with fiber-friendly spinner/progress bar, styled tables, interactive selects, and themed output.
Install
Quick start
Run:
Parsing behavior
- Supports
--key=value,--key value,-k value, combined shorts-abc,-ab=c, and attached value-afoo. - Negative numbers after flags are allowed (
--threshold -5); for other values starting with-, use--to stop parsing or--key=value. - Use
--to stop flag parsing:cmd -- --literal -text. - Duplicate flags with conflicting values throw.
Services & hooks
Per-command services: registerServiceFor(CommandClass::class, id, service).
Task runner & progress
Use $ctx->progress() to show the bar without spinner.
Tables
Headers default to the theme primary color; presets and custom ANSI codes are available.
Interactive select
Select uses raw mode; in non-TTY it falls back to the first option. POSIX terminals are supported; Windows raw-mode handling is not implemented yet (fallback to non-interactive).
Demo commands
Run in this repo:
Theme defaults
Colors come from the active theme (default CyberTheme). Table headers and progress bars will use theme primary unless overridden.
Known limitations
- Parsing is close to GNU but not identical; if a non-numeric value starts with
-, use--to terminate parsing or quote it. - Windows TTY support is not implemented; POSIX terminals recommended (Windows falls back to non-interactive select).
- No variadic args or custom value parsers yet.
Tests
Documentation
See docs/ for more focused examples (tasks, tables, progress, services, hooks, and interactive widgets). You can run them locally to capture screenshots.