kosmosafive / bitrix-ds
Структуры данных
1.0.0
2025-09-18 04:15 UTC
Requires
- php: ^8.3
- kosmosafive/bitrix-localization: ^2.0
- ramsey/uuid: ^4.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.86
- lendable/composer-license-checker: ^1.2
- phpstan/phpstan: ^2.1
- rector/rector: ^2.1
- roave/security-advisories: dev-latest
- shipmonk/composer-dependency-analyser: ^1.8
This package is auto-updated.
Last update: 2025-09-18 04:15:38 UTC
README
Collection
Типизированная коллекция
При использовании статических анализаторов (например, Psalm, PHPStan) можно использовать только комментарии. Если необходимо ограничивать выполнение кода в runtime, необходимо явно выбрасывать исключение.
Ниже приведен пример реализации типизированной коллекции, метод add.
use Kosmosafive\Bitrix\DS\Collection; use InvalidArgumentException; class Entity { } /** * @template-extends Collection<Entity> */ class EntityCollection extends Collection { /** * @param Entity $value * @return EntityCollection */ public function add(mixed $value): EntityCollection { if (!$value instanceof Entity) { throw new InvalidArgumentException("This collection only accepts instances of " . Entity::class); } return parent::add($value); } }
Request
Используется для фильтрации и валидации данные от клиента.
use Kosmosafive\Bitrix\DS\Request; readonly class GetRequest extends Request { #[Required] protected ?Uuid $id; public function __construct(\Bitrix\Main\Request $httpRequest) { $this->id = $this->filterUuid($httpRequest->get('id')); } public function getId(): ?Uuid { return $this->id; } } $getRequest = new GetRequest($this->getRequest()); $validateResult = $getRequest->validate();