phpfluent/jsonserializer

JSON Serializer implementation.

dev-master 2013-07-21 03:02 UTC

This package is auto-updated.

Last update: 2024-03-27 01:07:33 UTC


README

JSON Serializer implementation. Build Status

Install:

composer.phar require phpfluent/jsonserializer:dev-master

Usage:

<?php
use PHPFluent\JSONSerializer\Serializer;

class Nested extends Serializer
{
	/**
	 * @PHPFluent\JSONSerializer\Attribute
	 */
	private $array;

	public function setArray(array $array)
	{
		$this->array = $array;

		return $this;
	}
}

class MyFancyClass extends Serializer
{
	/**
	 * @PHPFluent\JSONSerializer\Attribute
	 */
	private $email;

	/**
	 * @PHPFluent\JSONSerializer\Attribute
	 */
	private $nested;

	private $iWontBeSerialized;

	public function setEmail($email)
	{
		if ( ! filter_var($email, FILTER_VALIDATE_EMAIL)) {
			throw new \InvalidArgumentException("Invalid email");
		}

		$this->email = $email;

		return $this;
	}

	public function setNested(Nested $nested)
	{
		$this->nested = $nested;

		return $this;
	}
}

$nested = (new Nested)->setArray(array(1, 2, 3));
$fancy  = (new MyFancyClass)->setEmail("foo@bar.com")->setNested($nested);

json_encode($fancy);
/*
 $serialized = json_encode(
	(new MyFancyClass)->setEmail("foo@bar.com")->setNested(
			(new Nested)->setArray(array(1, 2, 3))
		);
	);
*/

Test:

cd phpfluent/jsonserializer
composer.phar install --dev
make test