PHP SDK: Difference between revisions
No edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
'''Syntax:''' | '''Syntax:''' | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
$mtaServer = new mta( $hostname, $port, $username, $password ); | $mtaServer = new mta( $hostname, $port, $username, $password ); | ||
$resource = $mtaServer->getResource ( $resourceName ); | $resource = $mtaServer->getResource ( $resourceName ); | ||
Line 23: | Line 23: | ||
'''Syntax:''' | '''Syntax:''' | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
inputData[] = mta::getInput(); | inputData[] = mta::getInput(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 31: | Line 31: | ||
'''Syntax:''' | '''Syntax:''' | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
mta::doReturn( argument1, argument2 ... argumentN ); | mta::doReturn( argument1, argument2 ... argumentN ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Examples== | ==Examples== | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
include( "mta_sdk.php" ); | include( "mta_sdk.php" ); | ||
$mtaServer = new mta("bastage.net", 33004); | $mtaServer = new mta("bastage.net", 33004); | ||
Line 50: | Line 50: | ||
'''Example:''' | '''Example:''' | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
include( "mta_sdk.php" ); | include( "mta_sdk.php" ); | ||
$mtaServer = new mta("example.com", 33004, "myUsername", "myPassword" ); | $mtaServer = new mta("example.com", 33004, "myUsername", "myPassword" ); | ||
Line 60: | Line 60: | ||
'''PHP:''' (for the page that LUA expects to be at ''<nowiki>http://www.example.com/page.php</nowiki>'') | '''PHP:''' (for the page that LUA expects to be at ''<nowiki>http://www.example.com/page.php</nowiki>'') | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
include( "mta_sdk.php" ); | include( "mta_sdk.php" ); | ||
$input = mta::getInput(); | $input = mta::getInput(); | ||
Line 66: | Line 66: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''LUA:''' | '''LUA:''' | ||
<syntaxhighlight | <syntaxhighlight lang="lua"> | ||
-- result is called when the function returns | -- result is called when the function returns | ||
function result(sum) | function result(sum) | ||
Line 84: | Line 84: | ||
=== Node for version 0.4 === | === Node for version 0.4 === | ||
On line 80 in mta_sdk.php you will find the string: | On line 80 in mta_sdk.php you will find the string: | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
echo $json_output; | echo $json_output; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Replace that one with: | Replace that one with: | ||
<syntaxhighlight | <syntaxhighlight lang="php"> | ||
//echo $json_output; | //echo $json_output; | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 20:25, 23 September 2016
You can access the MTA Web Interface from almost any programming language that can request web pages using HTTP POST and encode and decode JSON. PHP can do this very easily.
This SDK provides one function call that will allow you to call any exported script functions on any server that you have access to.
The download below includes two example pages - one that shows a simple scoreboard, the other that shows the automatic handling of element and resource objects.
If you use this and make any improvements, feel free to send us a copy and we can host it for others to benefit from.
Functions
call
This function calls an exported function in a specific resource.
Syntax:
$mtaServer = new mta( $hostname, $port, $username, $password ); $resource = $mtaServer->getResource ( $resourceName ); $returns[] = $resource->call ( "functionName" [,args...] );
getInput
This function is for use with web pages that are called by callRemote.
Syntax:
inputData[] = mta::getInput();
doReturn
Use this function when you want to return data when a page is called with callRemote. You should NOT output any other data to the page, e.g. using echo as this will cause the return to fail.
Syntax:
mta::doReturn( argument1, argument2 ... argumentN );
Examples
include( "mta_sdk.php" ); $mtaServer = new mta("bastage.net", 33004); $resource = $mtaServer->getResource ( "echobot" ); $retn = $resource->call ( "getThisResource" ); // $retn is an array containing the values the function returned $resourceElement = $retn[0]; // the first returned value is the resource $retn = $resource->call ( "getResourceName", $resourceElement ); $resourceName = $retn[0]; // contains the name of the resource 'echobot'
Authentication
If the server you are accessing requires authentication, you must pass the http_username and http_password variables to your instantiated instance of the mta() class.
Example:
include( "mta_sdk.php" ); $mtaServer = new mta("example.com", 33004, "myUsername", "myPassword" ); $mtaServer->getResource("someResource")->call("someFunction");
A page that can be called by callRemote
This example just adds two numbers passed to it by a lua script.
PHP: (for the page that LUA expects to be at http://www.example.com/page.php)
include( "mta_sdk.php" ); $input = mta::getInput(); mta::doReturn($input[0] + $input[1]);
LUA:
-- result is called when the function returns function result(sum) outputChatBox(sum) end function addNumbers(number1, number2) callRemote ( "http://www.example.com/page.php", result, number1, number2 ) end addNumbers ( 123, 456 ) -- call the function
Caveats
- This only works with PHP 5.0 and above.
- You cannot currently compare two Element instances that you expect to be identical - you need to do a "deep compare", comparing the "id" fields.
Download
Node for version 0.4
On line 80 in mta_sdk.php you will find the string:
echo $json_output;
Replace that one with:
//echo $json_output;
Or remove it completly!
- Download Version 0.4 - Renamed public function mta(..) to public function __construct(..).
- Download Version 0.3 - Neater syntax, support functions for callRemote (fix version makes call work with args).
- Download Version 0.2 - Deprecated - Syntax differs from examples shown above. - Adds authentication support.
- Download Version 0.1 - Deprecated - Syntax differs from examples shown above.