class ResponsiveImage in Image Lazyloader 8
Class ResponsiveImage.
Hierarchy
- class \Drupal\lazyloader\ResponsiveImage implements \Drupal\lazyloader\IteratorAggregate, \Drupal\lazyloader\Countable
 
Expanded class hierarchy of ResponsiveImage
2 files declare their use of ResponsiveImage
- lazyloader.module in ./
lazyloader.module  - Lazyloader Module.
 - ResponsiveImageTest.php in tests/
src/ Unit/ ResponsiveImageTest.php  
File
- src/
ResponsiveImage.php, line 8  
Namespace
Drupal\lazyloaderView source
class ResponsiveImage implements \Countable, \IteratorAggregate {
  /**
   * The images.
   *
   * @var \stdClass[]
   */
  protected $images = [];
  /**
   * Creates a new ResponsiveImage instance.
   *
   * @param \stdClass[] $images
   *   The images.
   */
  public function __construct(array $images) {
    $this->images = $images;
  }
  /**
   * {@inheritdoc}
   */
  public function count() {
    return count($this->images);
  }
  /**
   * {@inheritdoc}
   */
  public function get($id) {
    return $this->images[$id];
  }
  /**
   * {@inheritdoc}
   */
  public function getIterator() {
    return new \ArrayIterator($this->images);
  }
  /**
   * Creates a responsive image instance from a string.
   *
   * @return $this
   */
  public static function parse($string) {
    $strings = array_map('trim', explode(',', $string));
    $images = array_map(function ($string) {
      $elements = explode(' ', $string);
      $object = new \stdClass();
      $object->uri = $elements[0];
      $object->density = NULL;
      $object->width = NULL;
      unset($elements[0]);
      foreach ($elements as $element) {
        if ($element[strlen($element) - 1] === 'w') {
          $object->width = substr($element, 0, -1);
        }
        if ($element[strlen($element) - 1] === 'x') {
          $object->density = substr($element, 0, -1);
        }
      }
      return $object;
    }, $strings);
    return new static($images);
  }
  /**
   * {@inheritdoc}
   */
  public function __toString() {
    return implode(', ', array_map(function ($element) {
      $string_elements = [
        $element->uri,
      ];
      if (!empty($element->width)) {
        $string_elements[] = $element->width . 'w';
      }
      if (!empty($element->density)) {
        $string_elements[] = $element->density . 'x';
      }
      return implode(' ', $string_elements);
    }, $this->images));
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            ResponsiveImage:: | 
                  protected | property | The images. | |
| 
            ResponsiveImage:: | 
                  public | function | ||
| 
            ResponsiveImage:: | 
                  public | function | ||
| 
            ResponsiveImage:: | 
                  public | function | ||
| 
            ResponsiveImage:: | 
                  public static | function | Creates a responsive image instance from a string. | |
| 
            ResponsiveImage:: | 
                  public | function | Creates a new ResponsiveImage instance. | |
| 
            ResponsiveImage:: | 
                  public | function |