src/Mapper/Entry.php
public function map($resource, array $data): ResourceClass
    {
        /** @var SystemProperties $sys */
        $sys = $this->createSystemProperties(SystemProperties::class, $data);
        $locale = $sys->getLocale();

        // We normalize the field data to always contain locales.
        foreach ($data['fields'] ?? [] as $name => $value) {
            // If the value is an empty array, and no locale was used,
            // we remove the value as the entry itself will handle default values.
            if (!$locale && $value === []) {
                unset($data['fields'][$name]);
                continue;
            }

            $data['fields'][$name] = $locale ? [$locale => $value] : $value;
        }

        /** @var ResourceClass $entry */
        $entry = $this->hydrator->hydrate($resource ?: ResourceClass::class, [
            'sys' => $sys,
            'client' => $this->client,
            'fields' => isset($data['fields'])
                ? $this->buildFields($sys->getContentType(), $data['fields'], $resource)
                : [],
        ]);

        $entry->initLocales($entry->getSystemProperties()->getEnvironment()->getLocales());

        return $entry;
    }
public function map($resource, array $data): ResourceClass
    {
        /** @var SystemProperties $sys */
        $sys = $this->createSystemProperties(SystemProperties::class, $data);
        $locale = $sys->getLocale();

        // We normalize the field data to always contain locales.
        foreach ($data['fields'] ?? [] as $name => $value) {
            // If the value is an empty array, and no locale was used,
            // we remove the value as the entry itself will handle default values.
            if (!$locale && $value === []) {
                unset($data['fields'][$name]);
                continue;
            }

            $data['fields'][$name] = $locale ? [$locale => $value] : $value;
        }

        /** @var ResourceClass $entry */
        $entry = $this->hydrator->hydrate($resource ?: ResourceClass::class, [
            'sys' => $sys,
            'client' => $this->client,
            'fields' => isset($data['fields'])
                ? $this->buildFields($sys->getContentType(), $data['fields'], $resource)
                : [],
        ]);

        $entry->initLocales($entry->getSystemProperties()->getEnvironment()->getLocales());

        return $entry;
    }
public function map ( $ resource , array $ data ) : ResourceClass { /** @var SystemProperties $sys */ $ sys = $ this -> createSystemProperties ( SystemProperties :: class , $ data ) ; $ locale = $ sys -> getLocale ( ) ; // We normalize the field data to always contain locales. foreach ( $ data [ 'fields' ] ?? [ ] as $ name => $ value ) { // If the value is an empty array, and no locale was used, // we remove the value as the entry itself will handle default values. if ( ! $ locale && $ value === [ ] ) { unset ( $ data [ 'fields' ] [ $ name ] ) ; continue ; } $ data [ 'fields' ] [ $ name ] = $ locale ? [ $ locale => $ value ] : $ value ; } /** @var ResourceClass $entry */ $ entry = $ this -> hydrator -> hydrate ( $ resource ? : ResourceClass :: class , [ 'sys' => $ sys , 'client' => $ this -> client , 'fields' => isset ( $ data [ 'fields' ] ) ? $ this -> buildFields ( $ sys -> getContentType ( ) , $ data [ 'fields' ] , $ resource ) : [ ] , ] ) ; $ entry -> initLocales ( $ entry -> getSystemProperties ( ) -> getEnvironment ( ) -> getLocales ( ) ) ; return $ entry ; }
{@inheritdoc}
{