Merge remote-tracking branch 'francoispluchino/installer-events'
commit
81fa284c9b
@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Installer;
|
||||
|
||||
use Composer\Composer;
|
||||
use Composer\DependencyResolver\PolicyInterface;
|
||||
use Composer\DependencyResolver\Operation\OperationInterface;
|
||||
use Composer\DependencyResolver\Pool;
|
||||
use Composer\DependencyResolver\Request;
|
||||
use Composer\EventDispatcher\Event;
|
||||
use Composer\IO\IOInterface;
|
||||
use Composer\Repository\CompositeRepository;
|
||||
|
||||
/**
|
||||
* An event for all installer.
|
||||
*
|
||||
* @author François Pluchino <francois.pluchino@gmail.com>
|
||||
*/
|
||||
class InstallerEvent extends Event
|
||||
{
|
||||
/**
|
||||
* @var Composer
|
||||
*/
|
||||
private $composer;
|
||||
|
||||
/**
|
||||
* @var IOInterface
|
||||
*/
|
||||
private $io;
|
||||
|
||||
/**
|
||||
* @var PolicyInterface
|
||||
*/
|
||||
private $policy;
|
||||
|
||||
/**
|
||||
* @var Pool
|
||||
*/
|
||||
private $pool;
|
||||
|
||||
/**
|
||||
* @var CompositeRepository
|
||||
*/
|
||||
private $installedRepo;
|
||||
|
||||
/**
|
||||
* @var Request
|
||||
*/
|
||||
private $request;
|
||||
|
||||
/**
|
||||
* @var OperationInterface[]
|
||||
*/
|
||||
private $operations;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param string $eventName
|
||||
* @param Composer $composer
|
||||
* @param IOInterface $io
|
||||
* @param PolicyInterface $policy
|
||||
* @param Pool $pool
|
||||
* @param CompositeRepository $installedRepo
|
||||
* @param Request $request
|
||||
* @param OperationInterface[] $operations
|
||||
*/
|
||||
public function __construct($eventName, Composer $composer, IOInterface $io, PolicyInterface $policy, Pool $pool, CompositeRepository $installedRepo, Request $request, array $operations = array())
|
||||
{
|
||||
parent::__construct($eventName);
|
||||
|
||||
$this->composer = $composer;
|
||||
$this->io = $io;
|
||||
$this->policy = $policy;
|
||||
$this->pool = $pool;
|
||||
$this->installedRepo = $installedRepo;
|
||||
$this->request = $request;
|
||||
$this->operations = $operations;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Composer
|
||||
*/
|
||||
public function getComposer()
|
||||
{
|
||||
return $this->composer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return IOInterface
|
||||
*/
|
||||
public function getIO()
|
||||
{
|
||||
return $this->io;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PolicyInterface
|
||||
*/
|
||||
public function getPolicy()
|
||||
{
|
||||
return $this->policy;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Pool
|
||||
*/
|
||||
public function getPool()
|
||||
{
|
||||
return $this->pool;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return CompositeRepository
|
||||
*/
|
||||
public function getInstalledRepo()
|
||||
{
|
||||
return $this->installedRepo;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Request
|
||||
*/
|
||||
public function getRequest()
|
||||
{
|
||||
return $this->request;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return OperationInterface[]
|
||||
*/
|
||||
public function getOperations()
|
||||
{
|
||||
return $this->operations;
|
||||
}
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Installer;
|
||||
|
||||
/**
|
||||
* The Installer Events.
|
||||
*
|
||||
* @author François Pluchino <francois.pluchino@gmail.com>
|
||||
*/
|
||||
class InstallerEvents
|
||||
{
|
||||
/**
|
||||
* The PRE_SOLVE_DEPENDENCIES event occurs as a installer begins
|
||||
* resolve operations.
|
||||
*
|
||||
* The event listener method receives a
|
||||
* Composer\Installer\InstallerEvent instance.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const PRE_SOLVE_DEPENDENCIES = 'pre-solve-dependencies';
|
||||
|
||||
/**
|
||||
* The POST_SOLVE_DEPENDENCIES event occurs as a installer after
|
||||
* resolve operations.
|
||||
*
|
||||
* The event listener method receives a
|
||||
* Composer\Installer\InstallerEvent instance.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const POST_SOLVE_DEPENDENCIES = 'post-solve-dependencies';
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\Test\Installer;
|
||||
|
||||
use Composer\Installer\InstallerEvent;
|
||||
|
||||
class InstallerEventTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
public function testGetter()
|
||||
{
|
||||
$composer = $this->getMock('Composer\Composer');
|
||||
$io = $this->getMock('Composer\IO\IOInterface');
|
||||
$policy = $this->getMock('Composer\DependencyResolver\PolicyInterface');
|
||||
$pool = $this->getMockBuilder('Composer\DependencyResolver\Pool')->disableOriginalConstructor()->getMock();
|
||||
$installedRepo = $this->getMockBuilder('Composer\Repository\CompositeRepository')->disableOriginalConstructor()->getMock();
|
||||
$request = $this->getMockBuilder('Composer\DependencyResolver\Request')->disableOriginalConstructor()->getMock();
|
||||
$operations = array($this->getMock('Composer\DependencyResolver\Operation\OperationInterface'));
|
||||
$event = new InstallerEvent('EVENT_NAME', $composer, $io, $policy, $pool, $installedRepo, $request, $operations);
|
||||
|
||||
$this->assertSame('EVENT_NAME', $event->getName());
|
||||
$this->assertInstanceOf('Composer\Composer', $event->getComposer());
|
||||
$this->assertInstanceOf('Composer\IO\IOInterface', $event->getIO());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\PolicyInterface', $event->getPolicy());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\Pool', $event->getPool());
|
||||
$this->assertInstanceOf('Composer\Repository\CompositeRepository', $event->getInstalledRepo());
|
||||
$this->assertInstanceOf('Composer\DependencyResolver\Request', $event->getRequest());
|
||||
$this->assertCount(1, $event->getOperations());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue