コード例 #1
0
 /**
  * Convert array to collection reference
  *
  * @param array $array
  * @return CollectionReference
  * @throws ReferenceNotImplementsException
  * @throws \InvalidArgumentException
  */
 public static function convertArrayToCollection(array $array)
 {
     $collection = new CollectionReference();
     foreach ($array as $key => $value) {
         if ($value instanceof CollectionItem) {
             $collection->addItem($value);
         } else {
             // Add item to collection
             $collection->addItem(new CollectionItem(self::convertValueToReference($key), self::convertValueToReference($value)));
         }
     }
     return $collection;
 }
コード例 #2
0
 public function testMergeWithArray()
 {
     $collection1 = new CollectionReference();
     $collection1->addItem(CollectionItem::create('key1', 'value'));
     $collection1->merge(['key2' => 'value']);
     static::assertCount(2, $collection1->getCollection());
     static::assertInstanceOf(StringReference::class, $collection1->getCollection()[1]->getKey());
 }
コード例 #3
0
 /**
  * Resolve collection type
  *
  * @param array $data
  * @return CollectionReference
  * @throws \samsonframework\container\definition\builder\exception\ReferenceNotImplementsException
  * @throws ReferenceNotImplementsException
  * @throws \InvalidArgumentException
  */
 protected function resolveCollection(array $data) : CollectionReference
 {
     $collection = new CollectionReference();
     if (array_key_exists('item', $data)) {
         /** @var array $itemCollection */
         $itemCollection = array_key_exists('key', $data['item']) && array_key_exists('value', $data['item']) ? [$data['item']] : $data['item'];
         /** @var array $item */
         foreach ($itemCollection as $item) {
             $collection->addItem(new CollectionItem($this->resolveDependency($item['key']), $this->resolveDependency($item['value'])));
         }
     }
     return $collection;
 }