7
7
* @copyright Copyright (C) 2007, Multi Theft Auto
8
8
* @author JackC, eAi
9
9
* @link http://www.mtasa.com
10
- * @version 0.2
10
+ * @version 0.3
11
11
*/
12
12
13
13
class mta
@@ -18,31 +18,78 @@ class mta
18
18
public $ http_username = '' ;
19
19
public $ http_password = '' ;
20
20
21
- public function callFunction ( $ host , $ port , $ resource , $ function )
21
+ public $ host = '' ;
22
+ public $ port = '' ;
23
+
24
+ private $ resources = array ();
25
+
26
+ public function mta ( $ host , $ port , $ username = "" , $ pass = "" )
27
+ {
28
+ $ this ->host = $ host ;
29
+ $ this ->port = $ port ;
30
+ $ this ->http_username = $ username ;
31
+ $ this ->http_password = $ pass ;
32
+ }
33
+
34
+ public function getResource ( $ resourceName )
35
+ {
36
+ foreach ( $ this ->resources as $ resource )
37
+ {
38
+ if ( $ resource ->getName == $ resourceName )
39
+ return $ resource ;
40
+ }
41
+
42
+ $ res = new Resource ( $ resourceName , $ this );
43
+ $ this ->resources [] = $ res ;
44
+ return $ res ;
45
+ }
46
+
47
+ public static function getInput ()
48
+ {
49
+ $ out = mta::convertToObjects ( json_decode ( file_get_contents ('php://input ' ), true ) );
50
+ return (is_array ($ out )) ? $ out : false ;
51
+ }
52
+
53
+ public static function doReturn ()
22
54
{
23
55
$ val = array ();
24
56
25
- for ( $ i = 4 ; $ i < func_num_args (); $ i ++ )
57
+ for ( $ i = 0 ; $ i < func_num_args (); $ i ++ )
26
58
{
27
- $ val [$ i- 4 ] = func_get_arg ($ i );
59
+ $ val [$ i ] = func_get_arg ($ i );
28
60
}
29
-
30
- $ val = $ this -> convertFromObjects ($ val );
61
+
62
+ $ val = mta:: convertFromObjects ($ val );
31
63
$ json_output = json_encode ($ val );
32
- $ path = "/ " . $ resource . "/call/ " . $ function ;
33
- $ result = $ this ->do_post_request ( $ host , $ port , $ path , $ json_output );
34
- $ out = $ this ->convertToObjects ( json_decode ( $ result , true ) );
64
+ echo $ json_output ;
65
+ }
66
+
67
+ public function callFunction ( $ resourceName , $ function , $ args )
68
+ {
69
+ if ( $ args != null )
70
+ {
71
+ $ args = mta::convertFromObjects ($ args );
72
+ $ json_output = json_encode ($ args );
73
+ }
74
+ else
75
+ {
76
+ $ json_output = "" ;
77
+ }
78
+ $ path = "/ " . $ resourceName . "/call/ " . $ function ;
79
+ $ result = $ this ->do_post_request ( $ this ->host , $ this ->port , $ path , $ json_output );
80
+ echo $ json_output ;
81
+ $ out = mta::convertToObjects ( json_decode ( $ result , true ) );
35
82
36
83
return (is_array ($ out )) ? $ out : false ;
37
84
}
38
85
39
- public function convertToObjects ( $ item )
86
+ public static function convertToObjects ( $ item )
40
87
{
41
88
if ( is_array ($ item ) )
42
89
{
43
90
foreach ( $ item as &$ value )
44
91
{
45
- $ value = $ this -> convertToObjects ( $ value );
92
+ $ value = mta:: convertToObjects ( $ value );
46
93
}
47
94
}
48
95
else if ( is_string ($ item ) )
@@ -53,20 +100,20 @@ public function convertToObjects( $item )
53
100
}
54
101
elseif ( substr ( $ item , 0 , 3 ) == "^R^ " )
55
102
{
56
- $ item = new Resource ( substr ( $ item , 3 ) );
103
+ $ item = $ this -> getResource ( substr ( $ item , 3 ) );
57
104
}
58
105
}
59
106
60
107
return $ item ;
61
108
}
62
109
63
- public function convertFromObjects ( $ item )
110
+ public static function convertFromObjects ( $ item )
64
111
{
65
112
if ( is_array ($ item ) )
66
113
{
67
114
foreach ( $ item as &$ value )
68
115
{
69
- $ value = $ this -> convertFromObjects ($ value );
116
+ $ value = mta:: convertFromObjects ($ value );
70
117
}
71
118
}
72
119
elseif ( is_object ($ item ) )
@@ -176,18 +223,38 @@ function toString()
176
223
}
177
224
}
178
225
226
+
179
227
class Resource
180
228
{
181
229
var $ name ;
230
+ private $ server ;
182
231
183
- function Resource ($ name )
232
+ function Resource ($ name, $ server )
184
233
{
185
234
$ this ->name = $ name ;
235
+ $ this ->server = $ server ;
186
236
}
187
237
188
238
function toString ()
189
239
{
190
240
return "^R^ " . $ this ->name ;
191
241
}
242
+
243
+ public function getName ()
244
+ {
245
+ return $ this ->name ;
246
+ }
247
+
248
+ function call ( $ function )
249
+ {
250
+
251
+ $ val = array ();
252
+
253
+ for ( $ i = 1 ; $ i < func_num_args (); $ i ++ )
254
+ {
255
+ $ val [$ i -1 ] = func_get_arg ($ i );
256
+ }
257
+ return $ this ->server ->callFunction ( $ this ->name , $ function , $ val );
258
+ }
192
259
}
193
260
?>
0 commit comments