The PHP micro-framework for Command line tools based on the Symfony2 Components

Installs: 3 055 179

Dependents: 31

Suggesters: 1

Security: 0

Stars: 623

Watchers: 29

Forks: 69

Open Issues: 6

2.0.0 2016-11-20 14:31 UTC

This package is auto-updated.

Last update: 2024-05-22 04:27:18 UTC


Cilex is a simple command line application framework to develop simple tools based on Symfony2 components:

if (!$loader = include __DIR__.'/vendor/autoload.php') {
    die('You must set up the project dependencies.');

$app = new \Cilex\Application('Cilex');
$app->command(new \Cilex\Command\GreetCommand());
$app->command('foo', function ($input, $output) {
    $output->writeln('Example output');

Cilex works with PHP 5.5.9 or later and is heavily inspired by the Silex web micro-framework by Fabien Potencier.


  1. git clone this repository.
  2. Download composer: curl -s | php
  3. Install Cilex' dependencies: php composer.phar install


  • Create your new commands in src/Cilex/Command/
  • Add your new commands to bin/run.php
  • Run the commands as:
./bin/run.php demo:greet world
./bin/run.php demo:greet world -y
./bin/run.php demo:greet world --yell
./bin/run.php demo:info

Creating a PHAR

  • Download and install box:
curl -LSs | php
chmod +x box.phar
mv box.phar /usr/local/bin/box
  • Update the project phar config in box.json
  • Create the package:
box build
  • Run the commands:
./cilex.phar demo:greet world
./cilex.phar demo:greet world -y
./cilex.phar demo:greet world --yell
./cilex.phar demo:info
  • enjoy a lot.


Cilex is licensed under the MIT license.


Q: How do I pass configuration into the application?

A: You can do this by adding the following line, where $configPath is the path to the configuration file you want to use:

$app->register(new \Cilex\Provider\ConfigServiceProvider(), array('config.path' => $configPath));

The formats currently supported are: YAML, XML and JSON