Framework for command line interfaces

0.3 2019-05-08 11:42 UTC

README

PHP Framework for command line interfaces

Latest Stable Version Minimum PHP Version Build Status

About

You want an easy way to build a command line tool written in PHP? You are bored of big, over-engineered frameworks? And last but not least, you do not want to reinvent the wheel? -- Great, this could be the (almost) perfect solution for your next project.

The goal is to build intuitive CLI tools. Nobody likes to read documentation, so make your application self-descriptive!

Features

  • Easy-to-install via Composer
  • Perfectly suited to create a single binary file from your application
  • Simple interface
  • Separate your features by commands
  • Runs on POSIX-like systems (GNU/Linux, MacOS, …) and Windows
  • Error/exception handling
  • Optional colored output based on log level
  • Log to standard or error output
  • Pre-defined usage output
  • JSON-based configuration with defaults, system-wide, user defined and runtime settings
  • Support for long and short options with optional or required values
  • Pre-defined options for verbosity/quietness, usage, version information, additional configuration files, runtime settings, configuration test
  • Verbosity mode outputs human-readable runtime in seconds and peak memory usage

Example

For a simple application look at the example/ folder.

Requirements

  • PHP, version 7.1 or higher (7.0 works but is deprecated, 7.3 is recommended, unreleased 7.4 should work)
  • PHP modules calendar, cli, date, filter and json

Installation

Go to your project folder and require this framework via Composer:

composer require bheisig/cli

Update

Composer is the way to go:

composer update

Copyright & License

Copyright (C) 2018-19 Benjamin Heisig

Licensed under the GNU Affero GPL version 3 or later (AGPLv3+). This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.