Download the PHP package hoa/console without Composer

On this page you can find all versions of the php package hoa/console. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package console

Hoa


Build status Code coverage Packagist License

Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds.

Hoa\Console

Help on IRC Help on Gitter Documentation Board

This library allows to interact easily with a terminal: getoption, cursor, window, processus, readline etc.

Learn more.

Installation

With Composer, to include this library into your dependencies, you need to require hoa/console:

For more installation procedures, please read the Source page.

Testing

Before running the test suites, the development dependencies must be installed:

Then, to run all the test suites:

For more information, please read the contributor guide.

Quick usage

We propose a quick overview of some features: cursor, window, readline, processus and finally getoption.

Cursor

The Hoa\Console\Cursor class allows to manipulate the cursor. Here is a list of some operations:

The API is very straightforward. For example, we can use l, left or to move the cursor on the left column. Thus we move the cursor to the left 3 times and then to the top 2 times:

… or with Unicode symbols:

This method moves the cursor relatively from its current position, but we are able to move the cursor to absolute coordinates:

We are also able to save the current cursor position, to move, clear etc., and then to restore the saved position:

Another example with colors:

Please, read the API documentation for more informations.

Mouse

The Hoa\Console\Mouse class allows to listen the mouse actions and provides the following listeners: mouseup, mousedown, wheelup and wheeldown. Example:

And then, when we left-click, we will see:

When we left-click while hiting the shift key, we will see:

This is an experimental API.

Window

The Hoa\Console\Window class allows to manipulate the window. Here is a list of some operations:

Furthermore, we have the hoa://Event/Console/Window:resize event channel to listen when the window has been resized.

For example, we resize the window to 40 lines and 80 columns, and then we move the window to 400px horizontally and 100px vertically:

If we do not like our user, we are able to minimize its window:

We are also able to set or get the title of the window:

Finally, if we have a complex application layout, we can repaint it when the window is resized by listening the hoa://Event/Console/Window:resize event channel:

Please, read the API documentation for more informations

Readline

The Hoa\Console\Readline\Readline class provides an advanced readline which allows the following operations:

It supports UTF-8. It is based on bindings, and here are some:

Thus, to read one line:

The Hoa\Console\Readline\Password allows the same operations but without printing on STDOUT.

We are able to add a mapping with the help of the Hoa\Console\Readline\Readline::addMapping method. We use \e[… for \033[, \C-… for Ctrl-… and a character for the rest. We can associate a character or a callable:

We are also able to manipulate the history, thanks to the addHistory, clearHistory, getHistory, previousHistory and nextHistory methods on the Hoa\Console\Readline\Readline class.

Finally, we have autocompleters that are enabled on Tab. If one solution is proposed, it will be inserted directly. If many solutions are proposed, we are able to navigate in a menu to select the solution (with the help of keyboard arrows, Enter, Esc etc.). Also, we are able to combine autocompleters. The following example combine the Word and Path autocompleters:

Here is an example of the result:

Autocompleters in action

On Windows, a readline is equivalent to a simple fgets(STDIN).

Processus

The Hoa\Console\Processus class allows to manipulate processus as a stream which implements Hoa\Stream\IStream\In, Hoa\Stream\IStream\Out and Hoa\Stream\IStream\Pathable interfaces (please, see the Hoa\Stream library).

Basically, we can read STDOUT like this:

And we can write on STDIN like this:

etc. This is very classical.

Hoa\Console\Processus also proposes many events: start, stop, input, output and timeout. Thus:

We are also able to read and write on more pipes than 0 (STDOUT), 1 (STDIN) and 2 (STDERR). In the same way, we can set the current working directory of the processus and its environment.

We can quickly execute a processus without using a stream with the help of the Hoa\Console\Processus::execute method.

GetOption

The Hoa\Console\Parser and Hoa\Console\GetOption classes allow to parse a command-line and get options and inputs values easily.

First, we need to parse a command-line, such as:

Second, we need to define our options:

And finally, we iterate over options:

Please, see API documentation of Hoa\Console\Parser to see all supported forms of options (flags or switches, long or short ones, inputs etc.).

It also support typos in options. In this case, we have to add:

If one solution is found, it will select this one automatically, else it will raise an exception. This exception is caught by Hoa\Console\Dispatcher\Kit when using the hoa script and a prompt is proposed.

Thanks to the Hoa\Router library and the Hoa\Dispatcher library (with its dedicated kit Hoa\Console\Dispatcher\Kit), we are able to build commands easily. Please, see all Bin/ directories in different libraries (for example Hoa\Cli\Bin\Resolve) and Hoa/Cli/Bin/Hoa.php to learn more.

Awecode

The following awecodes show this library in action:

Documentation

The hack book of Hoa\Console contains detailed information about how to use this library and how it works.

To generate the documentation locally, execute the following commands:

More documentation can be found on the project's website: hoa-project.net.

Getting help

There are mainly two ways to get help:

Contribution

Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know.

License

Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE for details.

Related projects

The following projects are using this library:


All versions of console with dependencies

PHP Build Version
Package Version
Requires hoa/consistency Version ~1.0
hoa/event Version ~1.0
hoa/exception Version ~1.0
hoa/file Version ~1.0
hoa/protocol Version ~1.0
hoa/stream Version ~1.0
hoa/ustring Version ~4.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package hoa/console contains the following files

Loading the files please wait ....