* @author Jordi Boggiano */ 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 */ 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 */ 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 */ 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 */ 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 */ 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 */ public function cleanup( string $type, PackageInterface $package, string $path, ?PackageInterface $prevPackage = null, ): PromiseInterface; } __halt_compiler();----SIGNATURE:----jCKDYC7VpXR7j7l6kGhPeCnva/yWqKaQAAwS+Lxx7/ZyQg5TF9oBAAzNEY03E3gCY2UanKp13bsn8BXt7Ub6ukzPvmSiBu0H5xjC2IxqTcfGXaH++Ukhv6IuuV4sSibkIftVNz0mthY2nbv3PMxeYSAvFa/J4dLtXMjDYia2s4BWW3eoW1Cy841fPsBbjAXQi04nW6qdpdQex2o9ZPNtF3S8qXUn0ti5sIyqE4IuiY1cf706C2aXD3f8lMB/XlGsTWVpLDx0apIkVuGLmD0Gxf0P7FlOtUnx//0Zdmo06sO+E6hTRxvHmcvcA+28NNw5FVTwmhKn6I7D3EeAk5V136ORMYeZlEHEVBx4D09v9w/cNkpibbcbmtQ6H3gJ0Vap/L276FcGzMcC9904wpHq18NiwAvyCDN/CAFF0eVjCjgXUsHHSnrjOtTNE77yNX5t89pYNehapneXhJi6WEcoWRoMwPrt2F8bFsPKn3eIuzkrjx2Q8dRmBTtRM6D7/CRmjSzLVk1J09l2KiZYSrpKqXddnEmPOKh4RXfoqkp7G/IN2bMT03XRh3M2kME9UQss/QMRsfYS23Xzth0GhVRQpG+7DtYGAkZyxz3C/nPXGCDWzixwDBOCTg7WYriUTJC1IipjJqK7ZrmKgXR5iIihpSeSt2CxUz4CkVokCKdQHkc=----ATTACHMENT:----ODY0Nzg0OTk2MzgzNjA2NiA2MTQ3NjIwMzE2MjYxMDA1IDc0Nzk3MzI0Mjc5ODgzMzM=