68 lines
2.2 KiB
PHP
68 lines
2.2 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Alchemy\BinaryDriver.
|
|
*
|
|
* (c) Alchemy <info@alchemy.fr>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Alchemy\BinaryDriver;
|
|
|
|
use Alchemy\BinaryDriver\Exception\ExecutableNotFoundException;
|
|
use Alchemy\BinaryDriver\Exception\ExecutionFailureException;
|
|
use Alchemy\BinaryDriver\Listeners\ListenerInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
use Evenement\EventEmitterInterface;
|
|
|
|
interface BinaryInterface extends ConfigurationAwareInterface, ProcessBuilderFactoryAwareInterface, ProcessRunnerAwareInterface, EventEmitterInterface
|
|
{
|
|
/**
|
|
* Adds a listener to the binary driver
|
|
*
|
|
* @param ListenerInterface $listener
|
|
*
|
|
* @return BinaryInterface
|
|
*/
|
|
public function listen(ListenerInterface $listener);
|
|
|
|
/**
|
|
* Removes a listener from the binary driver
|
|
*
|
|
* @param ListenerInterface $listener
|
|
*
|
|
* @return BinaryInterface
|
|
*/
|
|
public function unlisten(ListenerInterface $listener);
|
|
|
|
/**
|
|
* Runs a command against the driver.
|
|
*
|
|
* Calling this method on a `ls` driver with the command `-a` would run `ls -a`.
|
|
*
|
|
* @param array|string $command A command or an array of command
|
|
* @param Boolean $bypassErrors If set to true, an erronous process will not throw an exception
|
|
* @param ListenerInterface|array $listeners A listener or an array of listeners to register for this unique run
|
|
*
|
|
* @return string The command output
|
|
*
|
|
* @throws ExecutionFailureException in case of process failure.
|
|
*/
|
|
public function command($command, $bypassErrors = false, $listeners = null);
|
|
|
|
/**
|
|
* Loads a binary
|
|
*
|
|
* @param string|array $binaries A binary name or an array of binary names
|
|
* @param null|LoggerInterface $logger A Logger
|
|
* @param array|ConfigurationInterface $configuration The configuration
|
|
*
|
|
* @throws ExecutableNotFoundException In case none of the binaries were found
|
|
*
|
|
* @return BinaryInterface
|
|
*/
|
|
public static function load($binaries, LoggerInterface $logger = null, $configuration = array());
|
|
}
|