Download the PHP package jurjean/spray-serializer without Composer
On this page you can find all versions of the php package jurjean/spray-serializer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package spray-serializer
SpraySerializer
Fast and easy serialization and deserialization of php objects.
Internals
Serialization is performed by attaching to a specific class scope using the Closure::bind method. To keep things fast, reflection is only used while generating the serialization code.
How to use
Let's start with a class to serialize. Note that the annotations hint the serializer, and that they're required for deserializing objects.
Then we'll initialize the serializer.
Now we can serialize almost any object to an array and back to an object.
Supported annotations
As the example above shows, the serializer uses default docblock annotations to determine the serialization strategy. The following annotations are supported:
Almost any object
There're some limitations to the implemented serialization method. For instance, deserializing a DateTime(Immutable) object is not possible. For this reason, specialized serializers are added. You'll need to add these to the SerializerRegistry in your application bootstrap like so:
Inheritance support
In order to support object inheritance (de)serialization, just the annotations is not enough. The ObjectTypeListener is required to enable this functionality:
_Note: Enabling this feature results in your data populated with '__type' => 'ClassName'
._
Encryption support
When your application requires encryption you'll have to attach the EncryptionListener:
Caching methods
The library provides two methods of caching: array and file. The array cache is primarily useful for testing/development purposes. For production however, you're better off using the FileCache.
The file cache actually writes the generated serialization code to plain php files for later use (and therefore automatically cached in op-code cache).
Below is how you'd bootstrap the file cache for the serializer:
All versions of spray-serializer with dependencies
zendframework/zend-crypt Version >=2.3.0
zendframework/zend-eventmanager Version >=2.3.0,<3.0.0
symfony/filesystem Version >=2.3.0
symfony/finder Version >=2.3.0
php Version >=5.5.0