Memory se usa para poder leer/escribir valores de cualquier tipo en una directiva y tener acceso a ellos desde cualquier otra directiva.
Un par de ejemplos para entenderlo:
Las directivas pueden leer de memory a través de alias:
key: poems
endpoints:
post /user:
LoadUser:
directive: LoadAndValidateModel
source: $.message.bodyAsArray
target: user
SaveUser:
directive: SaveUser
user: $.memory.user
En el caso anterior, LoadUser, internamente, escribe en memory, en la key user (un array con los datos de un usuario). Que luego se pasa a la directiva SaveUser a través del alias: $.memory.user
Puedes escribir a memory usando el estado, desde dentro de una directiva:
$state->memory()->set('day','monday');
Y luego leer, desde dentro de otra directiva:
$state->memory()->get('day');//devolvería monday
O usando un alias:
key: poems
endpoints:
post /day:
CalculateDay:
directive: CalculateDay
SaveDay:
directive: SaveDay
user: $.memory.day
El método set, admite cualquier tipo de dato, string, integer, array, etc.
Memory también se usa para acceder a las siguientes variables globales: