fmap example


#[Package('inventory')] class PropertyGroupOptionTranslationCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getPropertyGroupOptionIds(): array
    {
        /** @var list<string> $ids */
        $ids = $this->fmap(fn (PropertyGroupOptionTranslationEntity $propertyGroupOptionTranslation) => $propertyGroupOptionTranslation->getPropertyGroupOptionId());

        return $ids;
    }

    public function filterByPropertyGroupOptionId(string $id): self
    {
        return $this->filter(fn (PropertyGroupOptionTranslationEntity $propertyGroupOptionTranslation) => $propertyGroupOptionTranslation->getPropertyGroupOptionId() === $id);
    }

    /** * @return list<string> */

    public function testSorting(AbstractPriceSorter $sorter, array $meta, array $items, array $expected): void
    {
        $package = new DiscountPackage(new LineItemQuantityCollection($meta));

        $package->setCartItems(new LineItemFlatCollection($items));

        $sorter->sort(new DiscountPackageCollection([$package]));

        $ordered = $package->getMetaData()->fmap(fn (LineItemQuantity $item) => $item->getLineItemId());

        static::assertEquals($expected$ordered);
    }

    public static function sortingProvider(): \Generator
    {
        yield 'Test ascending sorting' => [
            new FilterSorterPriceAsc(),
            [
                new LineItemQuantity('a', 1),
                new LineItemQuantity('b', 1),
                
/** * @extends EntityCollection<OrderAddressEntity> */
#[Package('checkout')] class OrderAddressCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getCountryIds(): array
    {
        return $this->fmap(fn (OrderAddressEntity $orderAddress) => $orderAddress->getCountryId());
    }

    public function filterByCountryId(string $id): self
    {
        return $this->filter(fn (OrderAddressEntity $orderAddress) => $orderAddress->getCountryId() === $id);
    }

    /** * @return list<string> */
    public function getCountryStateIds(): array
    {
return $filtered;
    }

    public function filtered(): FilterCollection
    {
        return $this->filter(fn (Filter $filter) => $filter->isFiltered() ? $filter : null);
    }

    public function getFilters(): array
    {
        return $this->fmap(fn (Filter $filter) => $filter->getFilter());
    }

    protected function getExpectedClass(): ?string
    {
        return Filter::class;
    }
}
/** * @extends EntityCollection<ProductManufacturerEntity> */
#[Package('inventory')] class ProductManufacturerCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getMediaIds(): array
    {
        return $this->fmap(fn (ProductManufacturerEntity $productManufacturer) => $productManufacturer->getMediaId());
    }

    public function filterByMediaId(string $id): self
    {
        return $this->filter(fn (ProductManufacturerEntity $productManufacturer) => $productManufacturer->getMediaId() === $id);
    }

    public function getApiAlias(): string
    {
        return 'product_manufacturer_collection';
    }

    
/** * @extends EntityCollection<CountryStateEntity> */
#[Package('buyers-experience')] class CountryStateCollection extends EntityCollection
{
    /** * @return array<string> */
    public function getCountryIds(): array
    {
        return $this->fmap(fn (CountryStateEntity $countryState) => $countryState->getCountryId());
    }

    public function filterByCountryId(string $id): self
    {
        return $this->filter(fn (CountryStateEntity $countryState) => $countryState->getCountryId() === $id);
    }

    public function sortByPositionAndName(): void
    {
        uasort($this->elements, static function DCountryStateEntity $a, CountryStateEntity $b) {
            $aPosition = $a->getPosition();
            

    public function filterForEvent(string $name)
    {
        return $this->filterByProperty('eventName', $name);
    }

    /** * @return array<string> */
    public function getAclRoleIdsAsBinary(): array
    {
        return array_values($this->fmap(static function DWebhookEntity $webhook): ?string {
            if ($webhook->getApp()) {
                return Uuid::fromHexToBytes($webhook->getApp()->getAclRoleId());
            }

            return null;
        }));
    }

    protected function getExpectedClass(): string
    {
        return WebhookEntity::class;
    }
use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
use Shopware\Core\Framework\Log\Package;

/** * @extends EntityCollection<CountryStateTranslationEntity> */
#[Package('buyers-experience')] class CountryStateTranslationCollection extends EntityCollection
{
    public function getCountryStateIds(): array
    {
        return $this->fmap(fn (CountryStateTranslationEntity $countryStateTranslation) => $countryStateTranslation->getCountryStateId());
    }

    public function filterByCountryStateId(string $id): self
    {
        return $this->filter(fn (CountryStateTranslationEntity $countryStateTranslation) => $countryStateTranslation->getCountryStateId() === $id);
    }

    public function getLanguageIds(): array
    {
        return $this->fmap(fn (CountryStateTranslationEntity $countryStateTranslation) => $countryStateTranslation->getLanguageId());
    }

    
use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
use Shopware\Core\Framework\Log\Package;

/** * @extends EntityCollection<UserEntity> */
#[Package('core')] class UserCollection extends EntityCollection
{
    public function getLocaleIds(): array
    {
        return $this->fmap(fn (UserEntity $user) => $user->getLocaleId());
    }

    public function filterByLocaleId(string $id): self
    {
        return $this->filter(fn (UserEntity $user) => $user->getLocaleId() === $id);
    }

    public function getApiAlias(): string
    {
        return 'user_collection';
    }

    
/** * @extends EntityCollection<StateMachineTranslationEntity> */
#[Package('core')] class StateMachineTranslationCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getLanguageIds(): array
    {
        return $this->fmap(fn (StateMachineTranslationEntity $stateMachineTranslation) => $stateMachineTranslation->getLanguageId());
    }

    public function filterByLanguageId(string $id): self
    {
        return $this->filter(fn (StateMachineTranslationEntity $stateMachineTranslation) => $stateMachineTranslation->getLanguageId() === $id);
    }

    public function getApiAlias(): string
    {
        return 'state_machine_translation_collection';
    }

    

#[Package('inventory')] class PropertyGroupTranslationCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getPropertyGroupIds(): array
    {
        /** @var list<string> $ids */
        $ids = $this->fmap(fn (PropertyGroupTranslationEntity $propertyGroupTranslation) => $propertyGroupTranslation->getPropertyGroupId());

        return $ids;
    }

    public function filterByPropertyGroupId(string $id): self
    {
        return $this->filter(fn (PropertyGroupTranslationEntity $propertyGroupTranslation) => $propertyGroupTranslation->getPropertyGroupId() === $id);
    }

    /** * @return list<string> */

#[Package('inventory')] class ProductCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getParentIds(): array
    {
        /** @var list<string> $ids */
        $ids = $this->fmap(fn (ProductEntity $product) => $product->getParentId());

        return $ids;
    }

    public function filterByParentId(string $id): self
    {
        return $this->filter(fn (ProductEntity $product) => $product->getParentId() === $id);
    }

    /** * @return list<string> */
return $this->getFields()->get($propertyName);
    }

    final public function getFieldVisibility(): FieldVisibility
    {
        if ($this->fieldVisibility) {
            return $this->fieldVisibility;
        }

        /** @var array<string> $internalProperties */
        $internalProperties = $this->getFields()
            ->fmap(function DField $field): ?string {
                if ($field->is(ApiAware::class)) {
                    return null;
                }

                return $field->getPropertyName();
            });

        return $this->fieldVisibility = new FieldVisibility(array_values($internalProperties));
    }

    /** * PHPStan will complain that we should specify the generic type if we hint that class strings * of EntityCollection should be returned. * * @return class-string */
array_keys($variables),
                array_values($variables),
                '#alias#.#foreignKey# = #on#.`id`' . $versionJoin
            )
        );

        return $alias;
    }

    private function getSelectTemplate(EntityDefinition $definition): string
    {
        $select = $definition->getFields()->fmap(function DField $field) {
            if (!$field instanceof StorageAware) {
                return null;
            }

            return '`#alias#`.' . $field->getStorageName() . ' as `#alias#.' . $field->getPropertyName() . '`';
        });

        return implode(', ', $select);
    }

    private function getTranslationQuery(
        
/** * @extends EntityCollection<VersionCommitEntity> */
#[Package('core')] class VersionCommitCollection extends EntityCollection
{
    /** * @return list<string> */
    public function getUserIds(): array
    {
        return $this->fmap(fn (VersionCommitEntity $versionChange) => $versionChange->getUserId());
    }

    public function filterByUserId(string $id): self
    {
        return $this->filter(fn (VersionCommitEntity $versionChange) => $versionChange->getUserId() === $id);
    }

    public function getApiAlias(): string
    {
        return 'dal_version_commit_collection';
    }

    
Home | Imprint | This part of the site doesn't use cookies.