Base
in package
implements
Serializable, Unserializable
Classe per modelar documents de mongo i que siguin serialitazbles.
Si una classe hereda d'aquesta, es pot serialitzar i deserialitzar a mongoDB sempre i quant es compleixi el següent:
- Tots els camps que es volen serialitzar/deserialitzar implementen BsonSerialize
- Només es poden serialitzar/deserialitzar elements estandards de mongoDB, primitius, arrays, stdClass i classes que implementen Serializable o Unserializable
- Per deserialitzar correctament cal posar els tiups de tots els camps o bé a PHP o bé a la documentació
- Cal que els camps que siguin serialitzables implementin getters i els deserializables setters o bé que siguin públics
- Els camps de tipus UTCDateTimeInterface es deserialitzen a tipus DateTime i viceversa
- Per deserialitzar els camps només poden tenir un tipus. Si en tenen més s'inferirà el primer que es trobi
- Les arrays i els stdClass es deserialitzen/serialitzen recursivament
Tags
Interfaces, Classes, Traits and Enums
- Serializable
- Unserializable
Table of Contents
- bsonSerialize() : array<string|int, mixed>|stdClass
- Retorna una array o stdClass que es poden serialitzar a BSON
- bsonUnserialize() : array<string|int, mixed>|stdClass
- Deserialitza una array o objecte
- propertyInfo() : PropertyInfoExtractor
- Retorna un extractor de informació de propietats
- serializeProperty() : mixed
- Serialitza una variable
- unserializeProperty() : mixed
- Retorna el valor a punt de ser deserialitzat
Methods
bsonSerialize()
Retorna una array o stdClass que es poden serialitzar a BSON
public
bsonSerialize() : array<string|int, mixed>|stdClass
Troba tots els camps que té la classe que tenen l'atribut BsonSerialize i si són accesibles via getters i els posa en stdClass amb el seu nom en camel case. Si els camps són classes que implementen Serializable es cridarà al mètode bsonSerialize per serialitzar-los. Els objectes de tipus DateTime es serialitzen a UTCDateTimeInterface. Els arrays es serialitzen recursivament. Si el camp té un nom especificat amb el camp "name" de BsonSerialize té prioritat al nom de la variable.
Return values
array<string|int, mixed>|stdClass —Una array o stdClass que es poden serialitzar a BSON
bsonUnserialize()
Deserialitza una array o objecte
public
bsonUnserialize(mixed $data) : array<string|int, mixed>|stdClass
Troba tots els camps que té la classe que tenen l'atribut BsonSerialize i si són accesibles via setters i els busca a $data amb seu nom en camel case. Si els camps són classes que implementen Unserializable es cridarà al mètode bsonUnserialize per deserialitzar-los. Els objectes de tipus UTCDateTimeInterface es deserialitzen a DateTime. Els arrays i stdClass es deserialitzen recursivament. Si el camp té un nom especificat amb el camp "name" de BsonSerialize té prioritat al nom de la variable. Per fer la deserialització s'utilitzen els tipus inferits dels camps de la classe. Si no es troba cap tipus, es deserialitzarà tal com vingui de base de dades. Ara mateix només es té en compte un tipus i prou. Si n'hi ha més d'un s'agafa el primer.
Parameters
- $data : mixed
Return values
array<string|int, mixed>|stdClass —Una array o stdClass que es poden serialitzar a BSON
propertyInfo()
Retorna un extractor de informació de propietats
private
propertyInfo() : PropertyInfoExtractor
Inicialitza un extractor de propietats de Symfony capaç d'extreure informació mitjançant reflexió i també mitjançant la documentació de les classes
Return values
PropertyInfoExtractor —serializeProperty()
Serialitza una variable
private
serializeProperty(mixed $value) : mixed
Serialitza una variable tal com es descriu a Base::bsonSerialize().
Parameters
- $value : mixed
-
Valor a serialitzar
Tags
Return values
mixed —Representació del valor a serialitzar
unserializeProperty()
Retorna el valor a punt de ser deserialitzat
private
unserializeProperty(mixed $value, array<string|int, Type> $types) : mixed
Retorna un valor a punt per ser deserialitzat tal i com es descriu a Base::bsonUnserialize().
Parameters
- $value : mixed
- $types : array<string|int, Type>
-
Array amb els tipus del camp a deserialitzar
Tags
Return values
mixed —Representació del valor a punt per ser deserialitzada