| [ Index ] |
|
Code source de eZ Publish 3.9.0 |
1 <?php 2 // 3 // Definition of eZSOAPCodec class 4 // 5 // Created on: <03-Jan-2006 10:12:37 hovik> 6 // 7 // SOFTWARE NAME: eZ publish 8 // SOFTWARE RELEASE: 3.9.0 9 // BUILD VERSION: 17785 10 // COPYRIGHT NOTICE: Copyright (C) 1999-2006 eZ systems AS 11 // SOFTWARE LICENSE: GNU General Public License v2.0 12 // NOTICE: > 13 // This program is free software; you can redistribute it and/or 14 // modify it under the terms of version 2.0 of the GNU General 15 // Public License as published by the Free Software Foundation. 16 // 17 // This program is distributed in the hope that it will be useful, 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 // GNU General Public License for more details. 21 // 22 // You should have received a copy of version 2.0 of the GNU General 23 // Public License along with this program; if not, write to the Free 24 // Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 25 // MA 02110-1301, USA. 26 // 27 // 28 29 /*! \file ezsoapcodec.php 30 */ 31 32 /*! 33 \class eZSOAPCodec ezsoapcodec.php 34 \brief The class eZSOAPCodec does 35 36 */ 37 38 class eZSOAPCodec 39 { 40 /*! 41 Constructor 42 */ 43 function eZSOAPCodec() 44 { 45 } 46 47 /*! 48 \static 49 Encodes a PHP variable into a SOAP datatype. 50 */ 51 function encodeValue( $name, $value ) 52 { 53 switch ( gettype( $value ) ) 54 { 55 case "string" : 56 { 57 $node = eZDOMDocument::createElementNode( $name ); 58 $attr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_XSD_PREFIX . ":string" ); 59 $attr->setPrefix( EZ_SOAP_XSI_PREFIX ); 60 $node->appendAttribute( $attr ); 61 $node->appendChild( eZDOMDocument::createTextNode( $value ) ); 62 63 return $node; 64 } break; 65 66 case "boolean" : 67 { 68 $node = eZDOMDocument::createElementNode( $name ); 69 $attr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_XSD_PREFIX . ":boolean" ); 70 $attr->setPrefix( EZ_SOAP_XSI_PREFIX ); 71 $node->appendAttribute( $attr ); 72 if ( $value === true ) 73 $node->appendChild( eZDOMDocument::createTextNode( "true" ) ); 74 else 75 $node->appendChild( eZDOMDocument::createTextNode( "false" ) ); 76 77 return $node; 78 } break; 79 80 case "integer" : 81 { 82 $node = eZDOMDocument::createElementNode( $name ); 83 $attr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_XSD_PREFIX . ":int" ); 84 $attr->setPrefix( EZ_SOAP_XSI_PREFIX ); 85 $node->appendAttribute( $attr ); 86 $node->appendChild( eZDOMDocument::createTextNode( $value ) ); 87 88 return $node; 89 } break; 90 91 case "double" : 92 { 93 $node = eZDOMDocument::createElementNode( $name ); 94 $attr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_XSD_PREFIX . ":float" ); 95 $attr->setPrefix( EZ_SOAP_XSI_PREFIX ); 96 $node->appendAttribute( $attr ); 97 $node->appendChild( eZDOMDocument::createTextNode( $value ) ); 98 99 return $node; 100 } break; 101 102 case "array" : 103 { 104 $arrayCount = count( $value ); 105 106 $isStruct = false; 107 // Check for struct 108 $i = 0; 109 foreach( $value as $key => $val ) 110 { 111 if ( $i !== $key ) 112 { 113 $isStruct = true; 114 break; 115 } 116 $i++; 117 } 118 119 if ( $isStruct == true ) 120 { 121 $node = eZDOMDocument::createElementNode( $name ); 122 // Type def 123 $typeAttr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_ENC_PREFIX . ":SOAPStruct" ); 124 $typeAttr->setPrefix( EZ_SOAP_XSI_PREFIX ); 125 $node->appendAttribute( $typeAttr ); 126 127 foreach( $value as $key => $val ) 128 { 129 $subNode = eZSOAPCodec::encodeValue( (string)$key, $val ); 130 $node->appendChild( $subNode ); 131 unset( $subNode ); 132 } 133 return $node; 134 } 135 else 136 { 137 $node = eZDOMDocument::createElementNode( $name ); 138 // Type def 139 $typeAttr = eZDOMDocument::createAttributeNode( "type", EZ_SOAP_ENC_PREFIX . ":Array" ); 140 $typeAttr->setPrefix( EZ_SOAP_XSI_PREFIX ); 141 $node->appendAttribute( $typeAttr ); 142 143 // Array type def 144 $arrayTypeAttr = eZDOMDocument::createAttributeNode( "arrayType", EZ_SOAP_XSD_PREFIX . ":string[$arrayCount]" ); 145 $arrayTypeAttr->setPrefix( EZ_SOAP_ENC_PREFIX ); 146 $node->appendAttribute( $arrayTypeAttr ); 147 148 foreach ( $value as $arrayItem ) 149 { 150 $subNode = eZSOAPCodec::encodeValue( "item", $arrayItem ); 151 $node->appendChild( $subNode ); 152 unset( $subNode ); 153 } 154 155 return $node; 156 } 157 } break; 158 } 159 160 return false; 161 } 162 } 163 164 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sat Feb 24 10:30:04 2007 | par Balluche grâce à PHPXref 0.7 |