summaryrefslogtreecommitdiffstats
path: root/3rdparty/ZendFeed/Writer/FeedFactory.php
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/ZendFeed/Writer/FeedFactory.php')
-rw-r--r--3rdparty/ZendFeed/Writer/FeedFactory.php127
1 files changed, 0 insertions, 127 deletions
diff --git a/3rdparty/ZendFeed/Writer/FeedFactory.php b/3rdparty/ZendFeed/Writer/FeedFactory.php
deleted file mode 100644
index 15e7a3468..000000000
--- a/3rdparty/ZendFeed/Writer/FeedFactory.php
+++ /dev/null
@@ -1,127 +0,0 @@
-<?php
-/**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
-
-namespace Zend\Feed\Writer;
-
-use Traversable;
-
-abstract class FeedFactory
-{
- /**
- * Create and return a Feed based on data provided.
- *
- * @param array|Traversable $data
- * @throws Exception\InvalidArgumentException
- * @return Feed
- */
- public static function factory($data)
- {
- if (!is_array($data) && !$data instanceof Traversable) {
- throw new Exception\InvalidArgumentException(sprintf(
- '%s expects an array or Traversable argument; received "%s"',
- __METHOD__,
- (is_object($data) ? get_class($data) : gettype($data))
- ));
- }
-
- $feed = new Feed();
-
- foreach ($data as $key => $value) {
- // Setters
- $key = static::convertKey($key);
- $method = 'set' . $key;
- if (method_exists($feed, $method)) {
- switch ($method) {
- case 'setfeedlink':
- if (!is_array($value)) {
- // Need an array
- break;
- }
- if (!array_key_exists('link', $value) || !array_key_exists('type', $value)) {
- // Need both keys to set this correctly
- break;
- }
- $feed->setFeedLink($value['link'], $value['type']);
- break;
- default:
- $feed->$method($value);
- break;
- }
- continue;
- }
-
- // Entries
- if ('entries' == $key) {
- static::createEntries($value, $feed);
- continue;
- }
- }
-
- return $feed;
- }
-
- /**
- * Normalize a key
- *
- * @param string $key
- * @return string
- */
- protected static function convertKey($key)
- {
- $key = str_replace('_', '', strtolower($key));
- return $key;
- }
-
- /**
- * Create and attach entries to a feed
- *
- * @param array|Traversable $entries
- * @param Feed $feed
- * @throws Exception\InvalidArgumentException
- * @return void
- */
- protected static function createEntries($entries, Feed $feed)
- {
- if (!is_array($entries) && !$entries instanceof Traversable) {
- throw new Exception\InvalidArgumentException(sprintf(
- '%s::factory expects the "entries" value to be an array or Traversable; received "%s"',
- get_called_class(),
- (is_object($entries) ? get_class($entries) : gettype($entries))
- ));
- }
-
- foreach ($entries as $data) {
- if (!is_array($data) && !$data instanceof Traversable && !$data instanceof Entry) {
- throw new Exception\InvalidArgumentException(sprintf(
- '%s expects an array, Traversable, or Zend\Feed\Writer\Entry argument; received "%s"',
- __METHOD__,
- (is_object($data) ? get_class($data) : gettype($data))
- ));
- }
-
- // Use case 1: Entry item
- if ($data instanceof Entry) {
- $feed->addEntry($data);
- continue;
- }
-
- // Use case 2: iterate item and populate entry
- $entry = $feed->createEntry();
- foreach ($data as $key => $value) {
- $key = static::convertKey($key);
- $method = 'set' . $key;
- if (!method_exists($entry, $method)) {
- continue;
- }
- $entry->$method($value);
- }
- $feed->addEntry($entry);
- }
- }
-}