Beispiel #1
0
 /**
  * write amf 3 data
  * @todo no type markers ("\6', for example) in this method!
  * @param mixed $d
  */
 protected function writeAmf3Data($d)
 {
     if (is_int($d)) {
         //int
         $this->writeAmf3Number($d);
         return;
     } elseif (is_float($d)) {
         //double
         $this->outBuffer .= "";
         $this->writeDouble($d);
         return;
     } elseif (is_string($d)) {
         // string
         $this->outBuffer .= "";
         $this->writeAmf3String($d);
         return;
     } elseif (is_bool($d)) {
         // boolean
         $this->writeAmf3Bool($d);
         return;
     } elseif (is_null($d)) {
         // null
         $this->writeAmf3Null();
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_Undefined) {
         // undefined
         $this->writeAmf3Undefined();
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_Date) {
         // date
         $this->writeAmf3Date($d);
         return;
     } elseif (is_array($d)) {
         // array
         $this->writeAmf3Array($d);
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_ByteArray) {
         //byte array
         $this->writeAmf3ByteArray($d);
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_Xml) {
         // Xml
         $this->writeAmf3Xml($d);
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_XmlDocument) {
         // XmlDoc
         $this->writeAmf3XmlDocument($d);
         return;
     } elseif ($d instanceof Amfphp_Core_Amf_Types_Vector) {
         $this->writeAmf3Vector($d);
         return;
     } elseif (is_object($d)) {
         if ($this->voConverter) {
             $this->voConverter->markExplicitType($d);
         }
         $explicitTypeField = Amfphp_Core_Amf_Constants::FIELD_EXPLICIT_TYPE;
         if (isset($d->{$explicitTypeField})) {
             $this->writeAmf3TypedObject($d);
             return;
         } else {
             $this->writeAmf3AnonymousObject($d);
             return;
         }
     }
     throw new Amfphp_Core_Exception("couldn't write object " . print_r($d, false));
 }