dwendrich/console-config-resolver

Simply create a symfony console application instance via zend-servicemanager.

0.2.1 2017-05-18 09:27 UTC

This package is auto-updated.

Last update: 2024-04-29 03:27:13 UTC


README

Simply create a symfony console application instance via zend-servicemanager.

Build Status Coverage Status Latest Stable Version

Requirements

Installation

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": "*"
    }
}

Usage

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