![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/knuckleswtf/scribe/camel/ |
<?php namespace Knuckles\Camel; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Support\Collection; use Spatie\DataTransferObject\DataTransferObjectCollection; /** * @template T of \Spatie\DataTransferObject\DataTransferObject */ class BaseDTOCollection extends Collection { /** * @var string The name of the base DTO class. */ public static string $base = ''; public function __construct($items = []) { // Manually cast nested arrays $items = array_map( fn($item) => is_array($item) ? new static::$base($item) : $item, $items instanceof Collection ? $items->toArray() : $items ); parent::__construct($items); } /** * Append items to the collection, mutating it. * * @param T[]|array[] $items */ public function concat($items) { foreach ($items as $item) { $this->push(is_array($item) ? new static::$base($item) : $item); } return $this; } public function toArray(): array { return array_map( fn($item) => $item instanceof Arrayable ? $item->toArray() : $item, $this->items ); } }