Exemplo n.º 1
0
 /**
  * Create and attach entries to a feed
  * 
  * @param  array|Traversable $entries 
  * @param  Feed $feed 
  * @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 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);
     }
 }
Exemplo n.º 2
0
 protected function normalizeKey($key, array $options)
 {
     // if (is_string($key)) {
     // do nothing
     // } else
     if (is_array($key)) {
         $normalized = [];
         foreach ($key as $k => $v) {
             $normalized[] = $k . '=' . $v;
         }
         $key = implode('/', $normalized);
     } elseif (!is_string($key)) {
         Exception\InvalidArgumentException(sprintf("Cache key option must be either string or array, '%s' passed", gettype($expiration)));
     }
     if (isset($options['namespace'])) {
         return $options['namespace'] . ':' . $key;
     }
     return $key;
 }