Simply create a symfony console application instance via zend-servicemanager.
- PHP 7.0 or higher
- Symfony Console component 3.2 or higher
- Zend Framework Service Manager component 3.3 or higher
ConsoleConfigResolver can be installed with composer. For information on how to get composer or how to use it, please refer to getcomposer.org.
Installation via command line:
$ php composer.phar require dwendrich/console-config-resolver
Installation via composer.json
file:
{
"require": {
"dwendrich/console-config-resolver": "*"
}
}
As part of the service-manager configuration you provide a section for the console application, e. g.
return [
'Example\Console' => [
'name' => 'My console application',
'version' => '1.0.0',
'commands' => [
// provide a class name or a service name configured in service manager
MyConsoleCommand::class,
// instances have to extend Symfony\Component\Console\Command\Command
new OtherConsoleCommand(),
],
],
// in zend framework applications this section is called 'service_manager'
'dependencies' => [
'factories' => [
'Example\Console' => ConsoleConfigResolver\Factory\ConfigResolverFactory::class,
],
],
];
Under the key commands
you can provide commands which will be added to your application. These have to either be a
class name or an object instance extending Symfony\Component\Console\Command\Command
.
Now in your code you can use the service manager to create the console application instance, e. g. in a file called
console.php
you can do it like this:
#!/usr/bin/env php
<?php
chdir(dirname(__FILE__));
call_user_func(function () {
// get your service manager instance
$container = require 'config/container.php';
// create the console application as configured in the example above
$console = $container->get('Example\Console');
// run the application
$console->run();
});
Run the application in a terminal, e. g.
$ php console.php list