Fault.php
4.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
/**
* This file contains the SOAP_Fault class, used for all error objects in this
* package.
*
* PHP versions 4 and 5
*
* LICENSE: This source file is subject to version 2.02 of the PHP license,
* that is bundled with this package in the file LICENSE, and is available at
* through the world-wide-web at http://www.php.net/license/2_02.txt. If you
* did not receive a copy of the PHP license and are unable to obtain it
* through the world-wide-web, please send a note to license@php.net so we can
* mail you a copy immediately.
*
* @category Web Services
* @package SOAP
* @author Dietrich Ayala <dietrich@ganx4.com> Original Author
* @author Shane Caraveo <Shane@Caraveo.com> Port to PEAR and more
* @author Chuck Hagenbuch <chuck@horde.org> Maintenance
* @author Jan Schneider <jan@horde.org> Maintenance
* @copyright 2003-2005 The PHP Group
* @license http://www.php.net/license/2_02.txt PHP License 2.02
* @link http://pear.php.net/package/SOAP
*/
require_once('PEAR.php');
/**
* SOAP_Fault
* PEAR::Error wrapper used to match SOAP Faults to PEAR Errors
*
* @package SOAP
* @access public
* @author Shane Caraveo <Shane@Caraveo.com> Port to PEAR and more
* @author Dietrich Ayala <dietrich@ganx4.com> Original Author
*/
class SOAP_Fault extends PEAR_Error
{
/**
* Constructor
*
* @param string message string for fault
* @param mixed the faultcode
* @param mixed see PEAR::ERROR
* @param mixed see PEAR::ERROR
* @param array the userinfo array is used to pass in the
* SOAP actor and detail for the fault
*/
function SOAP_Fault($faultstring = 'unknown error', $faultcode = 'Client', $faultactor=NULL, $detail=NULL, $mode = null, $options = null)
{
parent::PEAR_Error($faultstring, $faultcode, $mode, $options, $detail);
if ($faultactor) $this->error_message_prefix = $faultactor;
}
/**
* message
*
* returns a SOAP_Message class that can be sent as a server response
*
* @return SOAP_Message
* @access public
*/
function message()
{
$msg =& new SOAP_Base();
$params = array();
$params[] =& new SOAP_Value('faultcode', 'QName', 'SOAP-ENV:'.$this->code);
$params[] =& new SOAP_Value('faultstring', 'string', $this->message);
$params[] =& new SOAP_Value('faultactor', 'anyURI', $this->error_message_prefix);
if (isset($this->backtrace)) {
$params[] =& new SOAP_Value('detail', 'string', $this->backtrace);
} else {
$params[] =& new SOAP_Value('detail', 'string', $this->userinfo);
}
$methodValue =& new SOAP_Value('{'.SOAP_ENVELOP.'}Fault', 'Struct', $params);
$headers = NULL;
return $msg->_makeEnvelope($methodValue, $headers);
}
/**
* getFault
*
* returns a simple native php array containing the fault data
*
* @return array
* @access public
*/
function getFault()
{
global $SOAP_OBJECT_STRUCT;
if ($SOAP_OBJECT_STRUCT) {
$fault =& new stdClass();
$fault->faultcode = $this->code;
$fault->faultstring = $this->message;
$fault->faultactor = $this->error_message_prefix;
$fault->detail = $this->userinfo;
return $fault;
}
return array(
'faultcode' => $this->code,
'faultstring' => $this->message,
'faultactor' => $this->error_message_prefix,
'detail' => $this->userinfo
);
}
/**
* getActor
*
* returns the SOAP actor for the fault
*
* @return string
* @access public
*/
function getActor()
{
return $this->error_message_prefix;
}
/**
* getDetail
*
* returns the fault detail
*
* @return string
* @access public
*/
function getDetail()
{
return $this->userinfo;
}
}
?>