承接 maximebf/consolekit 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

maximebf/consolekit

最新稳定版本:1.0.3

Composer 安装命令:

composer require maximebf/consolekit

包简介

Library to create command line utilities

README 文档

README

PHP 5.3+ library to create command line utilities.

Build Status

Example

In cli.php:

<?php class HelloCommand extends ConsoleKit\Command { public function execute(array $args, array $options = array()) { $this->writeln('hello world!', ConsoleKit\Colors::GREEN); } } $console = new ConsoleKit\Console(); $console->addCommand('HelloCommand'); $console->run(); 

In the shell:

$ php cli.php hello hello world! 

More examples in example.php

Installation

The easiest way to install ConsoleKit is using Composer with the following requirement:

{ "require": { "maximebf/consolekit": ">=1.0.0" } } 

Alternatively, you can download the archive and add the src/ folder to PHP's include path:

set_include_path('/path/to/src' . PATH_SEPARATOR . get_include_path()); 

ConsoleKit does not provide an autoloader but follows the PSR-0 convention.
You can use the following snippet to autoload ConsoleKit classes:

spl_autoload_register(function($className) { if (substr($className, 0, 10) === 'ConsoleKit') { $filename = str_replace('\\', DIRECTORY_SEPARATOR, trim($className, '\\')) . '.php'; require_once $filename; } }); 

Usage

Options parser

The default options parser parses an argv-like array. Items can be of the form:

  • --key=value
  • --key
  • -a
  • -ab (equivalent of -a -b)

When an option has no value, true will be used. If multiple key/value pairs with the same key are specified, the "key" value will be an array containing all the values.
If "--" is detected, all folowing values will be treated as a single argument

Example: the string "-a -bc --longopt --key=value arg1 arg2 -- --any text" will produce the following two arrays:

$args = array('arg1', 'arg2', '--any text'); $options = array('a' => true, 'b' => true, 'c' => true, 'longopt' => true, 'key' => 'value'); 

Creating commands

Any callbacks can be a command. It will receive three parameters: the arguments array, the options array and the console object.

function my_command($args, $opts, $console) { $console->writeln("hello world!"); } 

Commands can also be defined as classes. In this case, they must inherit from ConsoleKit\Command and override the execute() method.

class MyCommand extends ConsoleKit\Command { public function execute(array $args, array $opts) { $this->writeln("hello world!"); } } 

The ConsoleKit\Command class offers helper methods, check it out for more info.

Registering commands

Commands need to be registered in the console object using the addCommand() method (or addCommands()).

$console = new ConsoleKit\Console(); $console->addCommand('my_command'); // the my_command function $console->addCommand('MyCommand'); // the MyCommand class $console->addCommand(function() { echo 'hello!'; }, 'hello'); // using a closure // or: $console->addCommand('hello', function() { echo 'hello!'; }); // alternative when using a closure 

Notice that in the last example we have provided a second argument which is an alias for a command. As closures have no name, one must be specified.

The command name for functions is the same as the function name with underscores replaced by dashes (ie. my_command becomes my-command).

The command name for command classes is the short class name without the Command suffix and "dashized" (ie. HelloWorldCommand becomes hello-world).

Running

Simply call the run() method of the console object

$console->run(); $console->run(array('custom arg1', 'custom arg2')); // overrides $_SERVER['argv'] 

Automatic help generation

The help command is automatically registered and provides help about available methods based on doc comments.
Check out example.php for example of available tags

$ php myscript.php help 

Formating text

Colors

The ConsoleKit\Colors::colorize() method provides an easy way to colorize a text. Colors are defined as either a string or an integer (through constants of the Colors class).
Available colors: black, red, green, yellow, blue, magenta, cyan, white.

Foreground colors are also available in a "bold" variant. Suffix the color name with "+bold" or use the OR bit operator with constants.

echo Colors::colorize('my red text', Colors::RED); echo Colors::colorize('my red text', 'red'); echo Colors::colorize('my red bold text', Colors::RED | Colors::BOLD); echo Colors::colorize('my red bold text', 'red+bold'); echo Colors::colorize('my red text over yellow background', Colors::RED, Colors::YELLOW); 

TextFormater

The ConsoleKit\TextFormater class allows you to format text using the following options:

  • indentation using setIndent() or the indent option
  • quoting using setQuote() or the quote option
  • foreground color using setFgColor() or the fgcolor option
  • background color using setBgColor() or the bgcolor option

Options can be defined using setOptions() or as the first parameter of the constructor.

$formater = new ConsoleKit\TextFormater(array('quote' => ' > ')); echo $formater->format("hello!"); // produces: " > hello" 

Widgets

Dialog

Used to interact with the user

$dialog = new ConsoleKit\Widgets\Dialog($console); $name = $dialog->ask('What is your name?'); if ($dialog->confirm('Are you sure?')) { $console->writeln("hello $name"); } 

Box

Wraps text in a box

$box = new ConsoleKit\Widgets\Box($console, 'my text'); $box->write(); 

Produces:

******************************************** * my text * ******************************************** 

Progress bar

Displays a progress bar

$total = 100; $progress = new ConsoleKit\Widgets\ProgressBar($console, $total); for ($i = 0; $i < $total; $i++) { $progress->incr(); usleep(10000); } $progress->stop(); 

统计信息

  • 总下载量: 103.16k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 116
  • 点击次数: 1
  • 依赖项目数: 10
  • 推荐数: 1

GitHub 信息

  • Stars: 114
  • Watchers: 13
  • Forks: 17
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固