Download the PHP package popphp/pop-console without Composer
On this page you can find all versions of the php package popphp/pop-console. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download popphp/pop-console
More information about popphp/pop-console
Files in popphp/pop-console
Package pop-console
Short Description Pop Console Component for Pop PHP Framework
License BSD-3-Clause
Homepage http://www.popphp.org/
Informations about the package pop-console
pop-console
- Overview
- Install
- Quickstart
- Response Buffer
- Colors
- Lines
- Headers
- Alerts
- Prompt
- Commands
- Help Screen
Overview
pop-console
provides a layer to run an application from the console terminal and produce formatted
output to the terminal window. It has support for commands and their parameters, as well ANSI-based
console colors. It can be easily be used with an application built with Pop to route requests
from the CLI to the application.
pop-console
is a component of the Pop PHP Framework.
Note
The code below represents basic examples. Ideally, you could wire an application to use the console for outputting content to the terminal screen, but not for setting routes, controllers and actions. Refer to the Pop PHP Tutorial example application to see how to wire up a CLI-based application complete with routes using Pop PHP.
Top
Install
Install pop-console
using Composer.
composer require popphp/pop-console
Or, require it in your composer.json file
"require": {
"popphp/pop-console" : "^4.1.0"
}
Top
Quickstart
Outputting to the console
You can use a console object to manage and deploy output to the console, including a prepended header and appended footer.
The above will output:
Console wrap and margin
By default, the console object enforces a wrap width at 80 characters and provides a margin of 4 spaces for readability. These values can be changed to whatever is needed for the application.
Top
Response Buffer
Append vs Write
In the above examples, the method append()
was used in conjunction with send()
. The method append()
appends the content to the response buffer, which will only get produced to the terminal screen when the
method send()
is called. This is useful if you have to take a number of steps to create the response buffer
before sending it.
Using the method write()
allows you to produce content to the terminal screen in real time, without
having to call the send()
method. This is useful if you need to push content out to the terminal screen
of the application as you go.
Newline and Margin
By default, calling the append()
or write()
methods will produce the margin value at the beginning
of the content and a newline at the end of the content. If this is not the desired behavior, boolean flags
can be passed to control this:
Top
Colors
On a console terminal that supports it, you can colorize text outputted to the console
with the colorize()
method:
The colorize()
method is also available as a static method on the Pop\Console\Color
class:
Available color constants include:
- NORMAL
- BLACK
- RED
- GREEN
- YELLOW
- BLUE
- MAGENTA
- CYAN
- WHITE
- BRIGHT_BLACK
- BRIGHT_RED
- BRIGHT_GREEN
- BRIGHT_YELLOW
- BRIGHT_BLUE
- BRIGHT_MAGENTA
- BRIGHT_CYAN
- BRIGHT_WHITE
- BOLD_BLACK
- BOLD_RED
- BOLD_GREEN
- BOLD_YELLOW
- BOLD_BLUE
- BOLD_MAGENTA
- BOLD_CYAN
- BOLD_WHITE
- BRIGHT_BOLD_BLACK
- BRIGHT_BOLD_RED
- BRIGHT_BOLD_GREEN
- BRIGHT_BOLD_YELLOW
- BRIGHT_BOLD_BLUE
- BRIGHT_BOLD_MAGENTA
- BRIGHT_BOLD_CYAN
- BRIGHT_BOLD_WHITE
Top
Lines
The line()
method provides a way to print a horizontal line rule out to the terminal. The default
character for the line is a dash -
, but any character can be passed into the method.
It will default to the wrap width of the console object. If no wrap width is available, it will take on the width of the terminal, unless a custom width is specified:
Top
Headers
The header()
method provides a way to output a separate block of text with an underline emphasis:
The character, size and alignment can be controlled as well:
Top
Alerts
Alerts are specially formatted boxes that provide style and enhancement to the user's experience in regard to important information and notifications.
The alertBox()
method produces a colorless alert box with a border made of character strings.
The above code will produce the following output to the console terminal:
Top
Prompt
You can trigger a prompt to get information from the user:
You can also enforce a certain set of options as well as case-sensitivity.
The prompt will not accept a value outside of the provided range of option
values. If the case-sensitive flag is set to true
, the prompt will not
accept values that are not an exact case-match.
Confirm
The confirm()
method is a shorthand version of a prompt to ask if the user is sure they want to proceed,
else the application will exit:
Top
Commands
A command object allows you to define the name, parameters and help string values of a command and add the command to the console object:
Top
Help Screen
Registering the commands with the console object like in the above example allows you
to call the help()
method to view the auto-generated help screen:
However, the console object has the method addCommandsFromRoutes()
which works in conjunction
with a Pop\Router\Cli\Match
object to automatically generate the command, along with their
parameters and help strings.
This console will use the CLI route match object and parse out all of the commands and make them available for the console object to leverage for the help screen.
Help colors
An extra layer of presentation control is available by way of setting the help screen colors. You can choose up to 4 colors that will be used in breaking apart the command strings by name and parameters and colorizing them to make the different segments standout in an organized fashion.
Let's take a look at the abstract constructor of the pop-kettle
component.
In the above constructor method, the help colors are set and then the application object pushes
the CLI route match object into the console method addCommandsFromRoutes()
. The second parameter
./kettle
is a script prefix to prepend to each line of help. Those two lines are all that is needed
to produce the colorful and well organized help screen for pop-kettle
, which is called within the
controller's help()
method.
The output looks like this:
Top