interface DownloaderInterface
Downloader interface.
@author Konstantin Kudryashov <ever.zet@gmail.com> @author Jordi Boggiano <j.boggiano@seld.be>
Hierarchy
- interface \Composer\Downloader\DownloaderInterface
Expanded class hierarchy of DownloaderInterface
All classes that implement DownloaderInterface
1 file declares its use of DownloaderInterface
- SyncHelper.php in vendor/
composer/ composer/ src/ Composer/ Util/ SyncHelper.php
File
-
vendor/
composer/ composer/ src/ Composer/ Downloader/ DownloaderInterface.php, line 24
Namespace
Composer\DownloaderView source
interface DownloaderInterface {
/**
* Returns installation source (either source or dist).
*
* @return string "source" or "dist"
*/
public function getInstallationSource() : string;
/**
* This should do any network-related tasks to prepare for an upcoming install/update
*
* @param string $path download path
* @phpstan-return PromiseInterface<void|null|string>
*/
public function download(PackageInterface $package, string $path, ?PackageInterface $prevPackage = null) : PromiseInterface;
/**
* Do anything that needs to be done between all downloads have been completed and the actual operation is executed
*
* All packages get first downloaded, then all together prepared, then all together installed/updated/uninstalled. Therefore
* for error recovery it is important to avoid failing during install/update/uninstall as much as possible, and risky things or
* user prompts should happen in the prepare step rather. In case of failure, cleanup() will be called so that changes can
* be undone as much as possible.
*
* @param string $type one of install/update/uninstall
* @param PackageInterface $package package instance
* @param string $path download path
* @param PackageInterface $prevPackage previous package instance in case of an update
* @phpstan-return PromiseInterface<void|null>
*/
public function prepare(string $type, PackageInterface $package, string $path, ?PackageInterface $prevPackage = null) : PromiseInterface;
/**
* Installs specific package into specific folder.
*
* @param PackageInterface $package package instance
* @param string $path download path
* @phpstan-return PromiseInterface<void|null>
*/
public function install(PackageInterface $package, string $path) : PromiseInterface;
/**
* Updates specific package in specific folder from initial to target version.
*
* @param PackageInterface $initial initial package
* @param PackageInterface $target updated package
* @param string $path download path
* @phpstan-return PromiseInterface<void|null>
*/
public function update(PackageInterface $initial, PackageInterface $target, string $path) : PromiseInterface;
/**
* Removes specific package from specific folder.
*
* @param PackageInterface $package package instance
* @param string $path download path
* @phpstan-return PromiseInterface<void|null>
*/
public function remove(PackageInterface $package, string $path) : PromiseInterface;
/**
* Do anything to cleanup changes applied in the prepare or install/update/uninstall steps
*
* Note that cleanup will be called for all packages, either after install/update/uninstall is complete,
* or if any package failed any operation. This is to give all installers a change to cleanup things
* they did previously, so you need to keep track of changes applied in the installer/downloader themselves.
*
* @param string $type one of install/update/uninstall
* @param PackageInterface $package package instance
* @param string $path download path
* @param PackageInterface $prevPackage previous package instance in case of an update
* @phpstan-return PromiseInterface<void|null>
*/
public function cleanup(string $type, PackageInterface $package, string $path, ?PackageInterface $prevPackage = null) : PromiseInterface;
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
DownloaderInterface::cleanup | public | function | Do anything to cleanup changes applied in the prepare or install/update/uninstall steps | 2 |
DownloaderInterface::download | public | function | This should do any network-related tasks to prepare for an upcoming install/update | 2 |
DownloaderInterface::getInstallationSource | public | function | Returns installation source (either source or dist). | 2 |
DownloaderInterface::install | public | function | Installs specific package into specific folder. | 2 |
DownloaderInterface::prepare | public | function | Do anything that needs to be done between all downloads have been completed and the actual operation is executed | 2 |
DownloaderInterface::remove | public | function | Removes specific package from specific folder. | 2 |
DownloaderInterface::update | public | function | Updates specific package in specific folder from initial to target version. | 2 |