Unfortunately we decided to not maintain this project anymore (see why). If you want to mark another package as a replacement for this one please send an email to [email protected].
Provides a Symfony\Component\Console based console for Silex 2.x.
Add knplabs/console-service-provider to your composer.json and register the service provider:
composer require knplabs/console-service-provider
use Knp\Provider\ConsoleServiceProvider;
$app->register(new ConsoleServiceProvider());You can now copy the console executable from the bin folder to whatever
place you see fit, and tweak it to your needs.
You will need a way to fetch your silex application, the most common way is to return it from your bootstrap file:
use Knp\Provider\ConsoleServiceProvider;
use Silex\Application;
$app = new Application();
$app->register(new ConsoleServiceProvider());
$app->register(new SomeOtherServiceProvider());
return $app;For the rest of this documentation, we will assume you do have a bin
directory, so the console executable will be located at bin/console.
Use the console just like any Symfony\Component\Console based console:
$ bin/console my:command
or on Windows:
$ php bin/console my:command
| Parameter | Default | Description | 
|---|---|---|
| console.name(string) | Silex console | Name of your console application | 
| console.version(string) | UNKNOWN | Version of your console application | 
| console.project_directory(string) | (auto-detected) | Your project's directory path. The default value should work, assuming the provider is installed in vendor/knplabs/console-service-provider | 
| console.class(string) | Knp\Console\Application | Class name of the console service | 
| console.boot_in_constructor(bool) | false | Whether the console should boot Silex when loaded (set it to trueif you depend on a bug that was fixed in 2.1) | 
| console.command.ids(array) | array() | Console commands registered as services | 
The service provider will register the following commands if the corresponding Symfony components are installed:
- From symfony/twig-bridge, thelint:twiganddebug:twigcommands
- From symfony/yaml, thelint:yamlcommand
The WebServerServiceProvider will register the commands provided by symfony/web-server-bundle.
$app = new Silex\Application();
$app->register(new Knp\Provider\ConsoleServiceProvider());
$app->register(new Knp\Provider\WebServerServiceProvider(), array(
    // Folder that contains your front controller/public files
    'web_server.document_root' => __DIR__.'/../public',
));The server commands expect your front controller to be located in your
document root and be called app_dev.php, app.php, index_dev.php or index.php.
For more information, please consult the Symfony documentation.