VersionedLibraryTrait.php in Libraries API 8.3
Namespace
Drupal\libraries\ExternalLibrary\VersionFile
src/ExternalLibrary/Version/VersionedLibraryTrait.phpView source
<?php
namespace Drupal\libraries\ExternalLibrary\Version;
use Drupal\Component\Plugin\Factory\FactoryInterface;
use Drupal\libraries\ExternalLibrary\Exception\UnknownLibraryVersionException;
/**
* Provides a trait for versioned libraries.
*
* @see \Drupal\libraries\ExternalLibrary\Version\VersionedLibraryInterface
*/
trait VersionedLibraryTrait {
/**
* The library version.
*
* @var string
*/
protected $version;
/**
* Information about the version detector to use fo rthis library.
*
* Contains the following keys:
* id: The plugin ID of the version detector.
* configuration: The plugin configuration of the version detector.
*
* @var array
*/
protected $versionDetector = [
'id' => NULL,
'configuration' => [],
];
/**
* Gets the version of the library.
*
* @return string
* The version string, for example 1.0, 2.1.4, or 3.0.0-alpha5.
*
* @throws \Drupal\libraries\ExternalLibrary\Exception\UnknownLibraryVersionException
*
* @see \Drupal\libraries\ExternalLibrary\Version\VersionedLibraryInterface::getVersion()
*/
public function getVersion() {
if (!isset($this->version)) {
throw new UnknownLibraryVersionException($this);
}
return $this->version;
}
/**
* Sets the version of the library.
*
* @param string $version
* The version of the library.
*
* @return $this
*
* @see \Drupal\libraries\ExternalLibrary\Version\VersionedLibraryInterface::setVersion()
*/
public function setVersion($version) {
$this->version = (string) $version;
return $this;
}
/**
* Gets the version detector of this library using the detector factory.
*
* Because determining the installation version of a library is not specific
* to any library or even any library type, this logic is offloaded to
* separate detector objects.
*
* @param \Drupal\Component\Plugin\Factory\FactoryInterface $detector_factory
*
* @return \Drupal\libraries\ExternalLibrary\Version\VersionDetectorInterface
*
* @see \Drupal\libraries\ExternalLibrary\Version\VersionDetectorInterface
*/
public function getVersionDetector(FactoryInterface $detector_factory) {
return $detector_factory
->createInstance($this->versionDetector['id'], $this->versionDetector['configuration']);
}
}
Traits
Name | Description |
---|---|
VersionedLibraryTrait | Provides a trait for versioned libraries. |