src/Mouf/MoufInstancePropertyDescriptor.php
public function toJson() {
		$result = array();
		$value = $this->getValue();

		if ($value instanceof MoufInstanceDescriptor) {
			$serializableValue = $value->getIdentifierName();
			//$result['type'] = 'object';
		} elseif (is_array($value)) {
			// We cannot match a PHP array to a JSON array!
			// The keys in a PHP array are ordered. The key in a JSON array are not ordered!
			// Therefore, we will be sending the arrays as JSON arrays of key/values to preserve order.
			$serializableValue = self::arrayToJson($value);
			
			//$result['type'] = 'scalar';
			// Let's find the type:
			/*foreach ($value as $val) {
				if ($val instanceof MoufInstanceDescriptor) {
					//$result['type'] = 'object';
					break;
				}
			}*/
			
		} else {
			$serializableValue = $value;
			//$result['type'] = 'scalar';
		}
		
		try {
			$type = $this->propertyDescriptor->getTypes()->getCompatibleTypeForInstance($value);
		} catch (\ReflectionException $e) {
			// If an error occurs here, let's silently continue with an error message added.
			$result['warning'] = $e->getMessage();
			$type = null;
		}
		/*if ($type == null) {
			throw new MoufException("Error for property ".$this->propertyDescriptor->getName()." for instance ".$this->instanceDescriptor->getName().".");
		}*/
		if ($type == null) {
			$result['type'] = null;
		} else {
			$result['type'] = $type->toJson();
		}
		$result['value'] = $serializableValue;
		$result['isset'] = $this->isValueSet();
		$result['origin'] = $this->getOrigin();
		$result['metadata'] = $this->getMetaData();
		return $result;
	}
public function toJson() {
		$result = array();
		$value = $this->getValue();

		if ($value instanceof MoufInstanceDescriptor) {
			$serializableValue = $value->getIdentifierName();
			//$result['type'] = 'object';
		} elseif (is_array($value)) {
			// We cannot match a PHP array to a JSON array!
			// The keys in a PHP array are ordered. The key in a JSON array are not ordered!
			// Therefore, we will be sending the arrays as JSON arrays of key/values to preserve order.
			$serializableValue = self::arrayToJson($value);
			
			//$result['type'] = 'scalar';
			// Let's find the type:
			/*foreach ($value as $val) {
				if ($val instanceof MoufInstanceDescriptor) {
					//$result['type'] = 'object';
					break;
				}
			}*/
			
		} else {
			$serializableValue = $value;
			//$result['type'] = 'scalar';
		}
		
		try {
			$type = $this->propertyDescriptor->getTypes()->getCompatibleTypeForInstance($value);
		} catch (\ReflectionException $e) {
			// If an error occurs here, let's silently continue with an error message added.
			$result['warning'] = $e->getMessage();
			$type = null;
		}
		/*if ($type == null) {
			throw new MoufException("Error for property ".$this->propertyDescriptor->getName()." for instance ".$this->instanceDescriptor->getName().".");
		}*/
		if ($type == null) {
			$result['type'] = null;
		} else {
			$result['type'] = $type->toJson();
		}
		$result['value'] = $serializableValue;
		$result['isset'] = $this->isValueSet();
		$result['origin'] = $this->getOrigin();
		$result['metadata'] = $this->getMetaData();
		return $result;
	}
public function toJson ( ) { $ result = array ( ) ; $ value = $ this -> getValue ( ) ; if ( $ value instanceof MoufInstanceDescriptor ) { $ serializableValue = $ value -> getIdentifierName ( ) ; //$result['type'] = 'object'; } elseif ( is_array ( $ value ) ) { // We cannot match a PHP array to a JSON array! // The keys in a PHP array are ordered. The key in a JSON array are not ordered! // Therefore, we will be sending the arrays as JSON arrays of key/values to preserve order. $ serializableValue = self :: arrayToJson ( $ value ) ; //$result['type'] = 'scalar'; // Let's find the type: /*foreach ($value as $val) {
				if ($val instanceof MoufInstanceDescriptor) {
					//$result['type'] = 'object';
					break;
				}
			}*/ } else { $ serializableValue = $ value ; //$result['type'] = 'scalar'; } try { $ type = $ this -> propertyDescriptor -> getTypes ( ) -> getCompatibleTypeForInstance ( $ value ) ; } catch ( \ ReflectionException $ e ) { // If an error occurs here, let's silently continue with an error message added. $ result [ 'warning' ] = $ e -> getMessage ( ) ; $ type = null ; } /*if ($type == null) {
			throw new MoufException("Error for property ".$this->propertyDescriptor->getName()." for instance ".$this->instanceDescriptor->getName().".");
		}*/ if ( $ type == null ) { $ result [ 'type' ] = null ; } else { $ result [ 'type' ] = $ type -> toJson ( ) ; } $ result [ 'value' ] = $ serializableValue ; $ result [ 'isset' ] = $ this -> isValueSet ( ) ; $ result [ 'origin' ] = $ this -> getOrigin ( ) ; $ result [ 'metadata' ] = $ this -> getMetaData ( ) ; return $ result ; }
Serializes the mouf instance property into a PHP array
@return array
Serializes the mouf instance property into a PHP array