data_pipelines-1.x-dev/src/Source/Resource/SourceResourceManager.php

src/Source/Resource/SourceResourceManager.php
<?php

declare(strict_types=1);

namespace Drupal\data_pipelines\Source\Resource;

/**
 * Defines a class to manage source resources.
 */
class SourceResourceManager {

  /**
   * The source resources.
   *
   * @var array
   */
  protected $sourceResources = [];

  /**
   * SourceResourceManager constructor.
   *
   * @param array $source_resources
   *   The source resources.
   *
   * @throws \Exception
   */
  public function __construct(array $source_resources) {
    foreach ($source_resources as $source_resource) {
      $source_resource_service_name_split = explode('.', $source_resource);
      if (empty($source_resource_service_name_split) || 1 === count($source_resource_service_name_split)) {
        throw new \InvalidArgumentException("The source resource service name must be delimited by a period (.)");
      }
      $source_resource_id = end($source_resource_service_name_split);
      if (preg_match('/[^\w]+/', $source_resource_id)) {
        throw new \InvalidArgumentException("The source resource id must be alphanumeric.");
      }
      $this->sourceResources[$source_resource_id] = $source_resource;
    }
  }

  /**
   * A method to get the source resources.
   *
   * @return array
   *   The source resources.
   */
  public function getSourceResources(): array {
    return $this->sourceResources;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc