1
0
Fork 0
composer/src/Composer/Plugin/PreFileDownloadEvent.php

174 lines
3.7 KiB
PHP

<?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\Plugin;
use Composer\EventDispatcher\Event;
use Composer\Util\HttpDownloader;
/**
* The pre file download event.
*
* @author Nils Adermann <naderman@naderman.de>
*/
class PreFileDownloadEvent extends Event
{
/**
* @var HttpDownloader
*/
private $httpDownloader;
/**
* @var string
*/
private $processedUrl;
/**
* @var string|null
*/
private $customCacheKey;
/**
* @var string
*/
private $type;
/**
* @var mixed
*/
private $context;
/**
* @var mixed[]
*/
private $transportOptions = array();
/**
* Constructor.
*
* @param string $name The event name
* @param HttpDownloader $httpDownloader
* @param string $processedUrl
* @param string $type
* @param mixed $context
*/
public function __construct($name, HttpDownloader $httpDownloader, $processedUrl, $type, $context = null)
{
parent::__construct($name);
$this->httpDownloader = $httpDownloader;
$this->processedUrl = $processedUrl;
$this->type = $type;
$this->context = $context;
}
/**
* @return HttpDownloader
*/
public function getHttpDownloader()
{
return $this->httpDownloader;
}
/**
* Retrieves the processed URL that will be downloaded.
*
* @return string
*/
public function getProcessedUrl()
{
return $this->processedUrl;
}
/**
* Sets the processed URL that will be downloaded.
*
* @param string $processedUrl New processed URL
*
* @return void
*/
public function setProcessedUrl($processedUrl)
{
$this->processedUrl = $processedUrl;
}
/**
* Retrieves a custom package cache key for this download.
*
* @return string|null
*/
public function getCustomCacheKey()
{
return $this->customCacheKey;
}
/**
* Sets a custom package cache key for this download.
*
* @param string|null $customCacheKey New cache key
*
* @return void
*/
public function setCustomCacheKey($customCacheKey)
{
$this->customCacheKey = $customCacheKey;
}
/**
* Returns the type of this download (package, metadata).
*
* @return string
*/
public function getType()
{
return $this->type;
}
/**
* Returns the context of this download, if any.
*
* If this download is of type package, the package object is returned.
* If the type is metadata, an array{repository: RepositoryInterface} is returned.
*
* @return mixed
*/
public function getContext()
{
return $this->context;
}
/**
* Returns transport options for the download.
*
* Only available for events with type metadata, for packages set the transport options on the package itself.
*
* @return mixed[]
*/
public function getTransportOptions()
{
return $this->transportOptions;
}
/**
* Sets transport options for the download.
*
* Only available for events with type metadata, for packages set the transport options on the package itself.
*
* @param mixed[] $options
*
* @return void
*/
public function setTransportOptions(array $options)
{
$this->transportOptions = $options;
}
}