2017 © Pedro Peláez
 

library serializer

Serializes a annotated object to a plain PHP array.

image

northern/serializer

Serializes a annotated object to a plain PHP array.

  • Saturday, July 26, 2014
  • by northern
  • Repository
  • 1 Watchers
  • 0 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Serializer

Northern\Serializer is a small PHP library that allows you to annotate your POPO's and serialize them into a plain PHP array., (*1)

To run the tests:, (*2)

vendor/bin/phpunit

To generate code coverage reports:, (*3)

vendor/bin/phpunit --coverage-html ./reports

Find Northern\Serializer on Packagist, (*4)

Installation

Install through Composer., (*5)

"require": {
  "northern/serializer": "1.*"
}

How to use

To use Northern\Serializer you need to import it:, (*6)

use Northern\Serializer\Serializer;

You can now instantiate and run the serializer on any PHP object:, (*7)

$serializer = new Serializer();

$array = $serializer->toArray( $someObject );

However, without having annotated $someObject's class, nothing will be serialized. Let's annotate the class of which $someObject is an instance:, (*8)

use Northern\Serializer\Annotation as Serialize;

class SomeClass {

  /** @Serialize\Int */
  protected $myProperty = 123;

}

We have now annotated our class and indicated that the $myProperty attribute must be serialized as an integer. When we now serialize $someObject (which is assumed to be an instance of SomeClass) the $array variable will contain the serialized data:, (*9)

Array(
  [myProperty] => 123
)

Easy as., (*10)

With Northern\Serializer you can also serialize methods. Usually a serialized method is a getter of some sort. Let's look at an example:, (*11)

use Northern\Serializer\Annotation as Serialize;

class SomeClass {

  /** @Serialize\Int(name="myValue") */
  public function getMyValue()
  {
    return 123;
  }

}

As the above demonstrates, by simply adding the correct annotation to the method, the output of the method will be serialized as the key set by the annotation name parameter, which is myValue in our example:, (*12)

Array(
  [myValue] => 123
)

If the name attribute is not specified on the annotation then the name of the method will be used as the serialization key, e.g:, (*13)

class SomeClass {

  /** @Serialize\Bool */
  public function isValid()
  {
    return true;
  }

}

Which will produce:, (*14)

Array(
  [isValid] => 1
)

Serializing properties and methods are of course very handy but what about a nested object? Can do too:, (*15)

class BarClass {

    /** @Serialize\Int */
    protected $barValue = 123;

}

class FooClass {

  /** @Serialize\Object */
  protected $bar;

  public function __construct()
  {
    $this->bar = new BarClass();
  }

}

Notice the Serialize\Object annotation? Be careful with recursive references!, (*16)

Reference

These are the available serialization types:, (*17)

Type Description
Serialize\Bool Serializes a boolean value.
Serialize\Int Serializes an integer value.
Serialize\Object Serializes an object. Indicates recursion.
Serialize\Collection Serializes an iterable, e.g. an array of objects.

The Versions

26/07 2014

dev-dev-master

dev-dev-master http://github.com/northern/Serializer

Serializes a annotated object to a plain PHP array.

  Sources   Download

MIT

The Requires

 

The Development Requires

data transform serialize

26/07 2014

dev-master

9999999-dev http://github.com/northern/Serializer

Serializes a annotated object to a plain PHP array.

  Sources   Download

MIT

The Requires

 

The Development Requires

data transform serialize

26/07 2014

1.0.1

1.0.1.0 http://github.com/northern/Serializer

Serializes a annotated object to a plain PHP array.

  Sources   Download

MIT

The Requires

 

The Development Requires

data transform serialize

26/07 2014

1.0.0

1.0.0.0 http://github.com/northern/Serializer

Serializes a annotated object to a plain PHP array.

  Sources   Download

MIT

The Requires

 

The Development Requires

data transform serialize