xref: /plugin/combo/ComboStrap/MetadataFormDataStore.php (revision c3437056399326d621a01da73b649707fbb0ae69)
1*c3437056SNickeau<?php
2*c3437056SNickeau
3*c3437056SNickeau
4*c3437056SNickeaunamespace ComboStrap;
5*c3437056SNickeau
6*c3437056SNickeau/**
7*c3437056SNickeau * Class MetadataFormStore
8*c3437056SNickeau * @package ComboStrap
9*c3437056SNickeau * Represents a data array of a post from an HTML form
10*c3437056SNickeau * ie formData
11*c3437056SNickeau */
12*c3437056SNickeauclass MetadataFormDataStore extends MetadataSingleArrayStore
13*c3437056SNickeau{
14*c3437056SNickeau
15*c3437056SNickeau
16*c3437056SNickeau    public static function getOrCreateFromResource(ResourceCombo $resourceCombo, array $formData = []): MetadataStore
17*c3437056SNickeau    {
18*c3437056SNickeau        return new MetadataFormDataStore($resourceCombo, $formData);
19*c3437056SNickeau    }
20*c3437056SNickeau
21*c3437056SNickeau
22*c3437056SNickeau    public function get(Metadata $metadata, $default = null)
23*c3437056SNickeau    {
24*c3437056SNickeau        $this->checkResource($metadata->getResource());
25*c3437056SNickeau        /**
26*c3437056SNickeau         * In a form, the name is send, not the {@link Metadata::getPersistentName()}
27*c3437056SNickeau         */
28*c3437056SNickeau        $value = $this->data[$metadata::getName()];
29*c3437056SNickeau        if ($value !== null) {
30*c3437056SNickeau            return $value;
31*c3437056SNickeau        }
32*c3437056SNickeau        return $default;
33*c3437056SNickeau    }
34*c3437056SNickeau
35*c3437056SNickeau
36*c3437056SNickeau}
37