You are here

class Feed in Zircon Profile 8

Same name in this branch
  1. 8 vendor/zendframework/zend-feed/src/Writer/Feed.php \Zend\Feed\Writer\Feed
  2. 8 core/modules/aggregator/src/Entity/Feed.php \Drupal\aggregator\Entity\Feed
  3. 8 vendor/zendframework/zend-feed/src/Reader/Extension/Syndication/Feed.php \Zend\Feed\Reader\Extension\Syndication\Feed
  4. 8 vendor/zendframework/zend-feed/src/Reader/Extension/Atom/Feed.php \Zend\Feed\Reader\Extension\Atom\Feed
  5. 8 vendor/zendframework/zend-feed/src/Reader/Extension/Podcast/Feed.php \Zend\Feed\Reader\Extension\Podcast\Feed
  6. 8 vendor/zendframework/zend-feed/src/Reader/Extension/DublinCore/Feed.php \Zend\Feed\Reader\Extension\DublinCore\Feed
  7. 8 vendor/zendframework/zend-feed/src/Reader/Extension/CreativeCommons/Feed.php \Zend\Feed\Reader\Extension\CreativeCommons\Feed
  8. 8 vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Feed.php \Zend\Feed\Writer\Extension\ITunes\Feed
  9. 8 core/modules/views/src/Plugin/views/display/Feed.php \Drupal\views\Plugin\views\display\Feed
  10. 8 vendor/zendframework/zend-feed/src/Writer/Extension/Atom/Renderer/Feed.php \Zend\Feed\Writer\Extension\Atom\Renderer\Feed
  11. 8 vendor/zendframework/zend-feed/src/Writer/Extension/DublinCore/Renderer/Feed.php \Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
  12. 8 vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Renderer/Feed.php \Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
Same name and namespace in other branches
  1. 8.0 vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Feed.php \Zend\Feed\Writer\Extension\ITunes\Feed

Hierarchy

  • class \Zend\Feed\Writer\Extension\ITunes\Feed

Expanded class hierarchy of Feed

19 string references to 'Feed'
aggregator.schema.yml in core/modules/aggregator/config/schema/aggregator.schema.yml
core/modules/aggregator/config/schema/aggregator.schema.yml
core.services.yml in core/core.services.yml
core/core.services.yml
ExtensionPluginManager::validatePlugin in vendor/zendframework/zend-feed/src/Writer/ExtensionPluginManager.php
Validate the plugin
PreviewTest::testPreviewUI in core/modules/views_ui/src/Tests/PreviewTest.php
Tests arguments in the preview form.
views.view.aggregator_rss_feed.yml in core/modules/aggregator/config/optional/views.view.aggregator_rss_feed.yml
core/modules/aggregator/config/optional/views.view.aggregator_rss_feed.yml

... See full list

1 service uses Feed
feed.writer.itunesfeed in core/core.services.yml
Zend\Feed\Writer\Extension\ITunes\Feed

File

vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Feed.php, line 19

Namespace

Zend\Feed\Writer\Extension\ITunes
View source
class Feed {

  /**
   * Array of Feed data for rendering by Extension's renderers
   *
   * @var array
   */
  protected $data = [];

  /**
   * Encoding of all text values
   *
   * @var string
   */
  protected $encoding = 'UTF-8';

  /**
   * The used string wrapper supporting encoding
   *
   * @var StringWrapperInterface
   */
  protected $stringWrapper;

  /**
   * Constructor
   */
  public function __construct() {
    $this->stringWrapper = StringUtils::getWrapper($this->encoding);
  }

  /**
   * Set feed encoding
   *
   * @param  string $enc
   * @return Feed
   */
  public function setEncoding($enc) {
    $this->stringWrapper = StringUtils::getWrapper($enc);
    $this->encoding = $enc;
    return $this;
  }

  /**
   * Get feed encoding
   *
   * @return string
   */
  public function getEncoding() {
    return $this->encoding;
  }

  /**
   * Set a block value of "yes" or "no". You may also set an empty string.
   *
   * @param  string
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesBlock($value) {
    if (!ctype_alpha($value) && strlen($value) > 0) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only' . ' contain alphabetic characters');
    }
    if ($this->stringWrapper
      ->strlen($value) > 255) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "block" may only' . ' contain a maximum of 255 characters');
    }
    $this->data['block'] = $value;
    return $this;
  }

  /**
   * Add feed authors
   *
   * @param  array $values
   * @return Feed
   */
  public function addItunesAuthors(array $values) {
    foreach ($values as $value) {
      $this
        ->addItunesAuthor($value);
    }
    return $this;
  }

  /**
   * Add feed author
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function addItunesAuthor($value) {
    if ($this->stringWrapper
      ->strlen($value) > 255) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "author" may only' . ' contain a maximum of 255 characters each');
    }
    if (!isset($this->data['authors'])) {
      $this->data['authors'] = [];
    }
    $this->data['authors'][] = $value;
    return $this;
  }

  /**
   * Set feed categories
   *
   * @param  array $values
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesCategories(array $values) {
    if (!isset($this->data['categories'])) {
      $this->data['categories'] = [];
    }
    foreach ($values as $key => $value) {
      if (!is_array($value)) {
        if ($this->stringWrapper
          ->strlen($value) > 255) {
          throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only' . ' contain a maximum of 255 characters each');
        }
        $this->data['categories'][] = $value;
      }
      else {
        if ($this->stringWrapper
          ->strlen($key) > 255) {
          throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only' . ' contain a maximum of 255 characters each');
        }
        $this->data['categories'][$key] = [];
        foreach ($value as $val) {
          if ($this->stringWrapper
            ->strlen($val) > 255) {
            throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "category" may only' . ' contain a maximum of 255 characters each');
          }
          $this->data['categories'][$key][] = $val;
        }
      }
    }
    return $this;
  }

  /**
   * Set feed image (icon)
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesImage($value) {
    if (!Uri::factory($value)
      ->isValid()) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "image" may only' . ' be a valid URI/IRI');
    }
    if (!in_array(substr($value, -3), [
      'jpg',
      'png',
    ])) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "image" may only' . ' use file extension "jpg" or "png" which must be the last three' . ' characters of the URI (i.e. no query string or fragment)');
    }
    $this->data['image'] = $value;
    return $this;
  }

  /**
   * Set feed cumulative duration
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesDuration($value) {
    $value = (string) $value;
    if (!ctype_digit($value) && !preg_match("/^\\d+:[0-5]{1}[0-9]{1}\$/", $value) && !preg_match("/^\\d+:[0-5]{1}[0-9]{1}:[0-5]{1}[0-9]{1}\$/", $value)) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "duration" may only' . ' be of a specified [[HH:]MM:]SS format');
    }
    $this->data['duration'] = $value;
    return $this;
  }

  /**
   * Set "explicit" flag
   *
   * @param  bool $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesExplicit($value) {
    if (!in_array($value, [
      'yes',
      'no',
      'clean',
    ])) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "explicit" may only' . ' be one of "yes", "no" or "clean"');
    }
    $this->data['explicit'] = $value;
    return $this;
  }

  /**
   * Set feed keywords
   *
   * @param  array $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesKeywords(array $value) {
    if (count($value) > 12) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only' . ' contain a maximum of 12 terms');
    }
    $concat = implode(',', $value);
    if ($this->stringWrapper
      ->strlen($concat) > 255) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "keywords" may only' . ' have a concatenated length of 255 chars where terms are delimited' . ' by a comma');
    }
    $this->data['keywords'] = $value;
    return $this;
  }

  /**
   * Set new feed URL
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesNewFeedUrl($value) {
    if (!Uri::factory($value)
      ->isValid()) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "newFeedUrl" may only' . ' be a valid URI/IRI');
    }
    $this->data['newFeedUrl'] = $value;
    return $this;
  }

  /**
   * Add feed owners
   *
   * @param  array $values
   * @return Feed
   */
  public function addItunesOwners(array $values) {
    foreach ($values as $value) {
      $this
        ->addItunesOwner($value);
    }
    return $this;
  }

  /**
   * Add feed owner
   *
   * @param  array $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function addItunesOwner(array $value) {
    if (!isset($value['name']) || !isset($value['email'])) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" must' . ' be an array containing keys "name" and "email"');
    }
    if ($this->stringWrapper
      ->strlen($value['name']) > 255 || $this->stringWrapper
      ->strlen($value['email']) > 255) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: any "owner" may only' . ' contain a maximum of 255 characters each for "name" and "email"');
    }
    if (!isset($this->data['owners'])) {
      $this->data['owners'] = [];
    }
    $this->data['owners'][] = $value;
    return $this;
  }

  /**
   * Set feed subtitle
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesSubtitle($value) {
    if ($this->stringWrapper
      ->strlen($value) > 255) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "subtitle" may only' . ' contain a maximum of 255 characters');
    }
    $this->data['subtitle'] = $value;
    return $this;
  }

  /**
   * Set feed summary
   *
   * @param  string $value
   * @return Feed
   * @throws Writer\Exception\InvalidArgumentException
   */
  public function setItunesSummary($value) {
    if ($this->stringWrapper
      ->strlen($value) > 4000) {
      throw new Writer\Exception\InvalidArgumentException('invalid parameter: "summary" may only' . ' contain a maximum of 4000 characters');
    }
    $this->data['summary'] = $value;
    return $this;
  }

  /**
   * Overloading: proxy to internal setters
   *
   * @param  string $method
   * @param  array $params
   * @return mixed
   * @throws Writer\Exception\BadMethodCallException
   */
  public function __call($method, array $params) {
    $point = lcfirst(substr($method, 9));
    if (!method_exists($this, 'setItunes' . ucfirst($point)) && !method_exists($this, 'addItunes' . ucfirst($point))) {
      throw new Writer\Exception\BadMethodCallException('invalid method: ' . $method);
    }
    if (!array_key_exists($point, $this->data) || empty($this->data[$point])) {
      return;
    }
    return $this->data[$point];
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Feed::$data protected property Array of Feed data for rendering by Extension's renderers
Feed::$encoding protected property Encoding of all text values
Feed::$stringWrapper protected property The used string wrapper supporting encoding
Feed::addItunesAuthor public function Add feed author
Feed::addItunesAuthors public function Add feed authors
Feed::addItunesOwner public function Add feed owner
Feed::addItunesOwners public function Add feed owners
Feed::getEncoding public function Get feed encoding
Feed::setEncoding public function Set feed encoding
Feed::setItunesBlock public function Set a block value of "yes" or "no". You may also set an empty string.
Feed::setItunesCategories public function Set feed categories
Feed::setItunesDuration public function Set feed cumulative duration
Feed::setItunesExplicit public function Set "explicit" flag
Feed::setItunesImage public function Set feed image (icon)
Feed::setItunesKeywords public function Set feed keywords
Feed::setItunesNewFeedUrl public function Set new feed URL
Feed::setItunesSubtitle public function Set feed subtitle
Feed::setItunesSummary public function Set feed summary
Feed::__call public function Overloading: proxy to internal setters
Feed::__construct public function Constructor