https://github.com/inanepain/cli
Command line tools to easily create console apps
https://github.com/inanepain/cli
Last synced: 8 months ago
JSON representation
Command line tools to easily create console apps
- Host: GitHub
- URL: https://github.com/inanepain/cli
- Owner: inanepain
- License: unlicense
- Created: 2022-03-10T09:38:44.000Z (almost 4 years ago)
- Default Branch: develop
- Last Pushed: 2025-03-17T16:25:19.000Z (10 months ago)
- Last Synced: 2025-03-30T05:41:12.406Z (9 months ago)
- Language: PHP
- Size: 557 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# PHP Command Line Tools
> version: $Id$ ($Date$)
A collection of functions and classes to assist with command line development.
Requirements
- PHP >= 8.1
Suggested PHP extensions
- mbstring - Used for calculating string widths.
## Function List
- `Inane\Cli\out($msg, ...)`
- `Inane\Cli\out_padded($msg, ...)`
- `Inane\Cli\err($msg, ...)`
- `Inane\Cli\line($msg = '', ...)`
- `Inane\Cli\input()`
- `Inane\Cli\prompt($question, $default = false, $marker = ':')`
- `Inane\Cli\choose($question, $choices = 'yn', $default = 'n')`
- `Inane\Cli\menu($items, $default = false, $title = 'Choose an Item')`
## Progress Indicators
- `Inane\Cli\notify\Dots($msg, $dots = 3, $interval = 100)`
- `Inane\Cli\notify\Spinner($msg, $interval = 100)`
- `Inane\Cli\progress\Bar($msg, $total, $interval = 100)`
## Tabular Display
- `Inane\Cli\Table::__construct(array $headers = null, array $rows = null)`
- `Inane\Cli\Table::setHeaders(array $headers)`
- `Inane\Cli\Table::setRows(array $rows)`
- `Inane\Cli\Table::setRenderer(cli\table\Renderer $renderer)`
- `Inane\Cli\Table::addRow(array $row)`
- `Inane\Cli\Table::sort($column)`
- `Inane\Cli\Table::display()`
The display function will detect if output is piped and, if it is, render a tab delimited table instead of the ASCII
table rendered for visual display.
You can also explicitly set the renderer used by calling `Inane\Cli\Table::setRenderer()` and giving it an instance of one
of the concrete `Inane\Cli\table\Renderer` classes.
## TextTable Display
Alternative table display.
```php
$tt = new \Inane\Cli\TextTable();
$tt->addHeader(['Name', 'Description']);
$tt->addRow(['TextTable', 'Alternative table display.']);
echo $tt->render();
```
## Tree Display
- `Inane\Cli\Tree::__construct()`
- `Inane\Cli\Tree::setData(array $data)`
- `Inane\Cli\Tree::setRenderer(cli\tree\Renderer $renderer)`
- `Inane\Cli\Tree::render()`
- `Inane\Cli\Tree::display()`
## Argument Parser
Argument parsing uses a simple framework for taking a list of command line arguments,
usually straight from `$_SERVER['argv']`, and parses the input against a set of
defined rules.
Check `examples/arguments.php` for an example.
## Usage
See `examples/` directory for examples.
## Todo
- Expand this README
- Add doc blocks to rest of code