Composer\Command dependencies (application and io) should can now be injected. This way, Composer\Command objects can be used in a regular symfony2 Console\Application.
parent
7308049056
commit
51e165c6c5
|
@ -13,6 +13,7 @@
|
||||||
namespace Composer\Command;
|
namespace Composer\Command;
|
||||||
|
|
||||||
use Symfony\Component\Console\Command\Command as BaseCommand;
|
use Symfony\Component\Console\Command\Command as BaseCommand;
|
||||||
|
use Composer\Console\Application as ComposerApplication;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for Composer commands
|
* Base class for Composer commands
|
||||||
|
@ -23,18 +24,59 @@ use Symfony\Component\Console\Command\Command as BaseCommand;
|
||||||
abstract class Command extends BaseCommand
|
abstract class Command extends BaseCommand
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
* @var \Composer\Composer
|
||||||
|
*/
|
||||||
|
private $composer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \Composer\IO\IOInterface
|
||||||
|
*/
|
||||||
|
private $io;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param bool $required
|
||||||
* @return \Composer\Composer
|
* @return \Composer\Composer
|
||||||
*/
|
*/
|
||||||
protected function getComposer($required = true)
|
public function getComposer($required = true)
|
||||||
{
|
{
|
||||||
return $this->getApplication()->getComposer($required);
|
if (null === $this->composer) {
|
||||||
|
$application = $this->getApplication();
|
||||||
|
if ($application instanceof ComposerApplication) {
|
||||||
|
/* @var $application ComposerApplication */
|
||||||
|
$this->composer = $application->getComposer();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->composer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Composer\Composer $composer
|
||||||
|
*/
|
||||||
|
public function setComposer(\Composer\Composer $composer)
|
||||||
|
{
|
||||||
|
$this->composer = $composer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Composer\IO\ConsoleIO
|
* @return \Composer\IO\ConsoleIO
|
||||||
*/
|
*/
|
||||||
protected function getIO()
|
public function getIO()
|
||||||
{
|
{
|
||||||
return $this->getApplication()->getIO();
|
if (null === $this->io) {
|
||||||
|
$application = $this->getApplication();
|
||||||
|
if ($application instanceof ComposerApplication) {
|
||||||
|
/* @var $application ComposerApplication */
|
||||||
|
$this->io = $application->getIO();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->io;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Composer\IO\IOInterface $io
|
||||||
|
*/
|
||||||
|
public function setIO(\Composer\IO\IOInterface $io)
|
||||||
|
{
|
||||||
|
$this->io = $io;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue