Zend Framework  2.4
Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
Encoder Class Reference

Encode PHP constructs to JSON. More...

Static Public Member Functions

static encode ($value, $cycleCheck=false, $options=array())
 Use the JSON encoding scheme for the value specified.
 
static encodeClass ($className, $package= '')
 Encodes the given $className into the class2 model of encoding PHP classes into JavaScript class2 classes.
 
static encodeClasses (array $classNames, $package= '')
 Encode several classes at once.
 
static encodeUnicodeString ($value)
 Encode Unicode Characters to ASCII syntax.
 

Protected Member Functions

 __construct ($cycleCheck=false, $options=array())
 Constructor.
 
 _encodeValue (&$value)
 Recursive driver which determines the type of value to be encoded and then dispatches to the appropriate method.
 
 _encodeObject (&$value)
 Encode an object to JSON by encoding each of the public properties.
 
 _wasVisited (&$value)
 Determine if an object has been serialized already.
 
 _encodeArray (&$array)
 JSON encode an array value.
 
 _encodeDatum (&$value)
 JSON encode a basic data type (string, number, boolean, null)
 
 _encodeString (&$string)
 JSON encode a string value by escaping characters as necessary.
 

Static Protected Member Functions

static _utf82utf16 ($utf8)
 Convert a string from one UTF-8 char to one UTF-16 char.
 

Protected Attributes

 $cycleCheck
 
 $options = array()
 
 $visited = array()
 

Detailed Description

Encode PHP constructs to JSON.

Constructor & Destructor Documentation

__construct (   $cycleCheck = false,
  $options = array() 
)
protected

Constructor.

Parameters
bool$cycleCheckWhether or not to check for recursion when encoding
array$optionsAdditional options used during encoding
Returns
Encoder

Member Function Documentation

_encodeArray ( $array)
protected

JSON encode an array value.

Recursively encodes each value of an array and returns a JSON encoded array string.

Arrays are defined as integer-indexed arrays starting at index 0, where the last index is (count($array) -1); any deviation from that is considered an associative array, and will be encoded as such.

Parameters
$arrayarray
Returns
string
_encodeDatum ( $value)
protected

JSON encode a basic data type (string, number, boolean, null)

If value type is not a string, number, boolean, or null, the string 'null' is returned.

Parameters
mixed$value
Returns
string
_encodeObject ( $value)
protected

Encode an object to JSON by encoding each of the public properties.

A special property is added to the JSON object called '__className' that contains the name of the class of $value. This is used to decode the object on the client into a specific class.

Parameters
$valueobject
Returns
string
Exceptions
RecursionExceptionIf recursive checks are enabled and the object has been serialized previously
_encodeString ( $string)
protected

JSON encode a string value by escaping characters as necessary.

Parameters
string$string
Returns
string
_encodeValue ( $value)
protected

Recursive driver which determines the type of value to be encoded and then dispatches to the appropriate method.

$values are either

Parameters
$valuemixed The value to be encoded
Returns
string Encoded value
static _utf82utf16 (   $utf8)
staticprotected

Convert a string from one UTF-8 char to one UTF-16 char.

Normally should be handled by mb_convert_encoding, but provides a slower PHP-only method for installations that lack the multibyte string extension.

This method is from the Solar Framework by Paul M. Jones

string $utf8 UTF-8 character string UTF-16 character

_wasVisited ( $value)
protected

Determine if an object has been serialized already.

Parameters
mixed$value
Returns
bool
static encode (   $value,
  $cycleCheck = false,
  $options = array() 
)
static

Use the JSON encoding scheme for the value specified.

Parameters
mixed$valueThe value to be encoded
bool$cycleCheckWhether or not to check for possible object recursion when encoding
array$optionsAdditional options used during encoding
Returns
string The encoded value
static encodeClass (   $className,
  $package = '' 
)
static

Encodes the given $className into the class2 model of encoding PHP classes into JavaScript class2 classes.

NOTE: Currently only public methods and variables are proxied onto the client machine

Parameters
$classNamestring The name of the class, the class must be instantiable using a null constructor
$packagestring Optional package name appended to JavaScript proxy class name
Returns
string The class2 (JavaScript) encoding of the class
Exceptions
InvalidArgumentException
static encodeClasses ( array  $classNames,
  $package = '' 
)
static

Encode several classes at once.

Returns JSON encoded classes, using encodeClass().

Parameters
array$classNames
string$package
Returns
string
static encodeUnicodeString (   $value)
static

Encode Unicode Characters to ASCII syntax.

This algorithm was originally developed for the Solar Framework by Paul M. Jones

https://github.com/solarphp/core/blob/master/Solar/Json.php string $value string

Iterate over every character in the string, escaping with a slash or encoding to UTF-8 where necessary

Member Data Documentation

$cycleCheck
protected
$options = array()
protected
$visited = array()
protected