Documentation

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
author

Lluc Bové lluc.bove@atheneasolutions.com

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
todo

Implementar conversió de tipus amb l'atribut BsonSerialize

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
todo

implementar múltiples tipus. Ara mateix només agafa el primer

Return values
mixed

Representació del valor a punt per ser deserialitzada

Search results