Entry.php in Zircon Profile 8
File
vendor/zendframework/zend-feed/src/Writer/Extension/ITunes/Entry.php
View source
<?php
namespace Zend\Feed\Writer\Extension\ITunes;
use Zend\Feed\Writer;
use Zend\Feed\Writer\Extension;
use Zend\Stdlib\StringUtils;
use Zend\Stdlib\StringWrapper\StringWrapperInterface;
class Entry {
protected $data = [];
protected $encoding = 'UTF-8';
protected $stringWrapper;
public function __construct() {
$this->stringWrapper = StringUtils::getWrapper($this->encoding);
}
public function setEncoding($enc) {
$this->stringWrapper = StringUtils::getWrapper($enc);
$this->encoding = $enc;
return $this;
}
public function getEncoding() {
return $this->encoding;
}
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;
}
public function addItunesAuthors(array $values) {
foreach ($values as $value) {
$this
->addItunesAuthor($value);
}
return $this;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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];
}
}