class Provider in Drupal 8
Same name and namespace in other branches
- 9 core/modules/media/src/OEmbed/Provider.php \Drupal\media\OEmbed\Provider
- 10 core/modules/media/src/OEmbed/Provider.php \Drupal\media\OEmbed\Provider
Value object for oEmbed providers.
Hierarchy
- class \Drupal\media\OEmbed\Provider
Expanded class hierarchy of Provider
4 files declare their use of Provider
- media_test_oembed.module in core/
modules/ media/ tests/ modules/ media_test_oembed/ media_test_oembed.module - Helper module for the Media oEmbed tests.
- OEmbedResourceConstraintValidatorTest.php in core/
modules/ media/ tests/ src/ Kernel/ OEmbedResourceConstraintValidatorTest.php - OEmbedTestTrait.php in core/
modules/ media/ tests/ src/ Traits/ OEmbedTestTrait.php - ProviderRepository.php in core/
modules/ media/ tests/ modules/ media_test_oembed/ src/ ProviderRepository.php
2 string references to 'Provider'
- block.schema.yml in core/
modules/ block/ config/ schema/ block.schema.yml - core/modules/block/config/schema/block.schema.yml
- core.data_types.schema.yml in core/
config/ schema/ core.data_types.schema.yml - core/config/schema/core.data_types.schema.yml
File
- core/
modules/ media/ src/ OEmbed/ Provider.php, line 10
Namespace
Drupal\media\OEmbedView source
class Provider {
/**
* The provider name.
*
* @var string
*/
protected $name;
/**
* The provider URL.
*
* @var string
*/
protected $url;
/**
* The provider endpoints.
*
* @var \Drupal\media\OEmbed\Endpoint[]
*/
protected $endpoints = [];
/**
* Provider constructor.
*
* @param string $name
* The provider name.
* @param string $url
* The provider URL.
* @param array[] $endpoints
* List of endpoints this provider exposes.
*
* @throws \Drupal\media\OEmbed\ProviderException
*/
public function __construct($name, $url, array $endpoints) {
if (!UrlHelper::isValid($url, TRUE) || !UrlHelper::isExternal($url)) {
throw new ProviderException('Provider @name does not define a valid external URL.', $this);
}
$this->name = $name;
$this->url = $url;
try {
foreach ($endpoints as $endpoint) {
$endpoint += [
'formats' => [],
'schemes' => [],
'discovery' => FALSE,
];
$this->endpoints[] = new Endpoint($endpoint['url'], $this, $endpoint['schemes'], $endpoint['formats'], $endpoint['discovery']);
}
} catch (\InvalidArgumentException $e) {
// Just skip all the invalid endpoints.
// @todo Log the exception message to help with debugging in
// https://www.drupal.org/project/drupal/issues/2972846.
}
if (empty($this->endpoints)) {
throw new ProviderException('Provider @name does not define any valid endpoints.', $this);
}
}
/**
* Returns the provider name.
*
* @return string
* Name of the provider.
*/
public function getName() {
return $this->name;
}
/**
* Returns the provider URL.
*
* @return string
* URL of the provider.
*/
public function getUrl() {
return $this->url;
}
/**
* Returns the provider endpoints.
*
* @return \Drupal\media\OEmbed\Endpoint[]
* List of endpoints this provider exposes.
*/
public function getEndpoints() {
return $this->endpoints;
}
}