Json/Encoder.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email to [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Json
- Version
- $Id: Encoder.php 25059 2012-11-02 21:01:06Z rob $
\Zend_Json_Encoder
Encode PHP constructs to JSON
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties

array $_options = array()Additional options used during encoding
array()Details- Type
- array
Methods

__construct(boolean $cycleCheck = false, array $options = array()) : voidConstructor
| Name | Type | Description |
|---|---|---|
| $cycleCheck | boolean | Whether or not to check for recursion when encoding |
| $options | array | Additional options used during encoding |

_encodeArray(\array $array) : stringJSON 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.
| Name | Type | Description |
|---|---|---|
| $array | \array |
| Type | Description |
|---|---|
| string |

_encodeConstants(\ReflectionClass $cls) : stringEncode the constants associated with the ReflectionClass parameter.
The encoding format is based on the class2 format
| Name | Type | Description |
|---|---|---|
| $cls | \ReflectionClass |
| Type | Description |
|---|---|
| string | Encoded constant block in class2 format |

_encodeDatum(\mixed $value) : stringJSON 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.
| Name | Type | Description |
|---|---|---|
| $value | \mixed |
| Type | Description |
|---|---|
| string |

_encodeMethods(\ReflectionClass $cls) : stringEncode the public methods of the ReflectionClass in the class2 format
| Name | Type | Description |
|---|---|---|
| $cls | \ReflectionClass |
| Type | Description |
|---|---|
| string | Encoded method fragment |

_encodeObject(object $value) : stringEncode 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.
| Name | Type | Description |
|---|---|---|
| $value | object |
| Type | Description |
|---|---|
| string |
| Exception | Description |
|---|---|
| \Zend_Json_Exception | If recursive checks are enabled and the object has been serialized previously |

_encodeString( $string) : stringJSON encode a string value by escaping characters as necessary
| Name | Type | Description |
|---|---|---|
| $string |
| Type | Description |
|---|---|
| string |

_encodeValue(mixed $value) : stringRecursive driver which determines the type of value to be encoded and then dispatches to the appropriate method.
$values are either - objects (returns from _encodeObject()) - arrays (returns from _encodeArray()) - basic datums (e.g. numbers or strings) (returns from _encodeDatum())
| Name | Type | Description |
|---|---|---|
| $value | mixed | The value to be encoded |
| Type | Description |
|---|---|
| string | Encoded value |

_encodeVariables(\ReflectionClass $cls) : stringEncode the public properties of the ReflectionClass in the class2 format.
| Name | Type | Description |
|---|---|---|
| $cls | \ReflectionClass |
| Type | Description |
|---|---|
| string | Encode properties list |

_utf82utf16(string $utf8) : stringConvert 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 multibye string extension.
This method is from the Solar Framework by Paul M. Jones
| Name | Type | Description |
|---|---|---|
| $utf8 | string | UTF-8 character |
| Type | Description |
|---|---|
| string | UTF-16 character |
- Link
- http://solarphp.com

_wasVisited(mixed $value) : booleanDetermine if an object has been serialized already
| Name | Type | Description |
|---|---|---|
| $value | mixed |
| Type | Description |
|---|---|
| boolean |

encode(mixed $value, boolean $cycleCheck = false, array $options = array()) : stringUse the JSON encoding scheme for the value specified
| Name | Type | Description |
|---|---|---|
| $value | mixed | The value to be encoded |
| $cycleCheck | boolean | Whether or not to check for possible object recursion when encoding |
| $options | array | Additional options used during encoding |
| Type | Description |
|---|---|
| string | The encoded value |

encodeClass(string $className, string $package = '') : stringEncodes 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
| Name | Type | Description |
|---|---|---|
| $className | string | The name of the class, the class must be instantiable using a null constructor |
| $package | string | Optional package name appended to JavaScript proxy class name |
| Type | Description |
|---|---|
| string | The class2 (JavaScript) encoding of the class |
| Exception | Description |
|---|---|
| \Zend_Json_Exception |

encodeClasses(array $classNames, string $package = '') : stringEncode several classes at once
Returns JSON encoded classes, using encodeClass().
| Name | Type | Description |
|---|---|---|
| $classNames | array | |
| $package | string |
| Type | Description |
|---|---|
| string |