public function testReverseCollection() { $collection = new Collection(); $collection[] = 1; $collection[] = 2; $collection[] = 3; $reverse = ArrayHelper::reverse($collection); $expected = new Collection(); $expected[] = 3; $expected[] = 2; $expected[] = 1; $this->assertEquals($expected, $reverse); }
/** * @param Model|Model[] $models * @param Context $context * @param null $resourceDefinition * @return array|\mixed[] */ protected function modelsToResources($models, Context $context, $resourceDefinition = null) { if (ArrayHelper::isIterable($models)) { return $this->toResources($models, $context, $resourceDefinition)->toArray(); } elseif ($models instanceof Model) { return $this->toResource($models, $context, $resourceDefinition)->toArray(); } else { return $models; } }
/** * @param ResourceDefinition|string $resourceDefinition * @param mixed $entities * @param ContextContract $context * @param RelationshipValue $parent * @param null $parentEntity * @return ResourceCollection * @throws InvalidContextAction * @throws InvalidEntityException */ public function toResources($resourceDefinition, $entities, ContextContract $context, RelationshipValue $parent = null, $parentEntity = null) : ResourceCollection { if (!ArrayHelper::isIterable($entities)) { throw new InvalidEntityException(__CLASS__ . '::toResources expects an iterable object of entities.'); } $resourceDefinition = ResourceDefinitionLibrary::make($resourceDefinition); $out = new ResourceCollection(); foreach ($entities as $entity) { $out->add($this->toResource($resourceDefinition, $entity, $context, $parent, $parentEntity)); } $context->getProcessors()->processCollection($this, $out, $resourceDefinition, $context, $parent, $parentEntity); return $out; }
/** * @param array $properties * @return PaginationBuilder */ public function setLast($properties) : PaginationBuilder { if (!ArrayHelper::hasArrayAccess($properties)) { throw new InvalidArgumentException("Could not read properties: properties must have ArrayAccess."); } $this->last = $properties; return $this; }