Symfony, array naar entity

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ama saril

ama saril

10/03/2016 14:46:36
Quote Anchor link
Beste php'ers,
Ik heb een array en wil hiermee eigenlijk met 1 functie een entity vullen. Maar ik vraag mij af of dit mogelij is? Na googelen kom ik wel het omgekeerde tegen (entity naar array). Weet iemand een bepaalde functie die dit kan doen? Ik denk dat het met de serializer wel moet lukken maar ik kan niet uitvogelen hoe dit moet.

Ik heb dus (bijvoorbeeld) een entity met de volgende velden:
- id
- naam
- straat
- nummer

en de volgende array:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
array{
  ["id"]=> "5"
  ["naam"]=> "Kees"
  ["straat"]=> "eenStraat"
  ["nummer"]=> "13"
}


Is het mogelijk om de entity in 1x te vullen met de array (aangezien de veldnamen hetzelfde zijn) ?
 
PHP hulp

PHP hulp

16/08/2018 18:20:48
 
Reshad F

Reshad F

10/03/2016 16:06:46
 
Ama saril

ama saril

10/03/2016 17:17:25
Quote Anchor link
Ik heb hem gezien. Het leek me alleen zo omslachtig om eerst een array naar JSON en dan naar een Object te parsen vandaar dat ik het hier even vroeg. Maar als dit de enige manier is :)
 
Thomas van den Heuvel

Thomas van den Heuvel

10/03/2016 17:35:10
Quote Anchor link
Of een typecast met (object), die je array converteert naar een object van de StdClass klasse?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

10/03/2016 18:17:04
Quote Anchor link
In principe mag je je entity gewoon uitbreiden met custom methods.

Bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
public function fromArray($array)
{

    $this->id = $array['id'];
    $this->naam = $array['naam'];
    $this->straat = $array['straat'];
    $this->nummer = $array['nummer'];

    return $this;
}


public function toArray()
{

    return array(
        'id' => $this->id,
        'naam' => $this->naam,
        'straat' => $this->straat,
        'nummer' => $this->nummer
    );
}

?>


De Serializer Component kan echter ook naar JSON en XML converteren. Mocht je dat willen gebruiken dan hier een paar linkjes:

een serializable User entity
De PHP serializable interface
de Serializer Component
Gewijzigd op 10/03/2016 18:17:55 door Frank Nietbelangrijk
 
Wouter J

Wouter J

10/03/2016 22:10:16
Quote Anchor link
Dan zou een named constructor mooier zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class User
{
    // ...

    public static function fromArray($array)
    {

        return new static($array['id'], $array['naam'], ...);
    }
}

?>


Tevens bestaat de Serializer component uit 2 delen: JSON/XML/whatever -> array en array -> object. Dat laatste deel kun je dus prima hergebruiken.
 
Ama saril

ama saril

11/03/2016 10:55:20
Quote Anchor link
Dank je wel allemaal, ga vandaag verder met het uitvogelen van de serializer.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.