chubbyphp/chubbyphp-lazy-command

Chubbyphp Lazy Command

1.2.0 2018-08-06 06:26 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Total Downloads Monthly Downloads Latest Stable Version Latest Unstable Version

Description

Allow to lazyload commands.

Requirements

  • php: ~7.0
  • psr/container: ~1.0
  • symfony/console: ~2.3|~3.0|~4.0

Installation

Through Composer as chubbyphp/chubbyphp-lazy-command.

composer require chubbyphp/chubbyphp-lazy-command "~1.2"

Usage

For callables

<?php

use Chubbyphp\Lazy\LazyCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;

$container['service'] = function () {
    return function (InputInterface $input, OutputInterface $output) {
        // run some lazy logic
    };
};

$command = new LazyCommand(
   $container,
   'service',
   'name',
   [
       new InputArgument('argument'),
   ],
   'description',
   'help'
);

$command->run();

For existing commands extending Command

<?php

use Chubbyphp\Lazy\CommandAdapter;
use Chubbyphp\Lazy\LazyCommand;
use Symfony\Component\Console\Input\InputArgument;

$container['service'] = function () {
    return new CommandAdapter(new ExistingCommand());
};

$command = new LazyCommand(
   $container,
   'service',
   'name',
   [
       new InputArgument('argument'),
   ],
   'description',
   'help'
);

$command->run();

Copyright

Dominik Zogg 2016