This commit is contained in:
2023-10-02 23:10:49 +03:00
commit c6cb488379
255 changed files with 18731 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace Lucent\Primitive;
use Illuminate\Support\Collection as LaravelCollection;
/**
* @template T
* @extends \Illuminate\Support\Collection<int, T>
*/
final class Collection extends LaravelCollection
{
/**
* @param array<T> $values
*/
public function __construct(
$values = []
) {
parent::__construct($values);
}
/**
* @return array<T>
**/
public function toArray(): array
{
return collect($this)->values()->toArray();
}
/**
* @return Collection<T>
**/
public function rejectNull(): Collection
{
return $this->filter(fn($v) => !empty($v))->values();
}
}
+38
View File
@@ -0,0 +1,38 @@
<?php
namespace Lucent\Primitive;
use Illuminate\Support\Collection;
/**
* @extends \Illuminate\Support\Collection<int|string, string>
*/
final class StringCollection extends Collection
{
public function __construct(
string ...$array
) {
parent::__construct($array);
}
/**
* @return string[]
**/
public function toArray(): array
{
return collect($this)->values()->toArray();
}
public static function fromArray(array $data): StringCollection
{
return new StringCollection(...$data);
}
public static function fromDB(string $data): StringCollection
{
return new StringCollection(...\json_decode($data,true));
}
}