PHP SDK: Difference between revisions
mNo edit summary |
|||
(41 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
You can access the MTA Web Interface from almost any programming language that can request web pages | __NOTOC__ | ||
You can access the MTA Web Interface from almost any programming language that can request web pages. 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. | |||
== Installation == | |||
== | === Prerequisites === | ||
=== | |||
''' | This SDK requires PHP 7.1 or greater. | ||
<syntaxhighlight lang=" | |||
=== HTTPlug client abstraction === | |||
As this SDK uses HTTPlug, you will have to require some libraries for get it working. See [http://docs.php-http.org/en/latest/httplug/users.html “HTTPlug for library users”] for more info. | |||
:warning: '''Note''': If you don’t follow this requirement before require the SDK, composer will throw you an error. | |||
=== Setup === | |||
The only supported installation method is via [https://getcomposer.org Composer]. Run the following command to require this SDK in your project: | |||
<pre>composer require multitheftauto/mtasa-php-sdk</pre> | |||
== A simple example == | |||
There are three ways to call an MTA server’s exported functions, as shown in the following example: | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
require_once('vendor/autoload.php'); | |||
use MultiTheftAuto\Sdk\Mta; | |||
use MultiTheftAuto\Sdk\Model\Server; | |||
use MultiTheftAuto\Sdk\Model\Authentication; | |||
$server = new Server('127.0.0.1', 22005); | |||
$auth = new Authentication('myUser', 'myPassword'); | |||
$mta = new Mta($server, $auth); | |||
$response = $mta->getResource('someResource')->call('callableFunction', $arg1, $arg2, $arg3, ...); | |||
// or | |||
$response = $mta->getResource('someResource')->call->callableFunction($arg1, $arg2, $arg3, ...); | |||
var_dump($response); | |||
</syntaxhighlight> | |||
==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 ''<nowiki>http://www.example.com/page.php</nowiki>'') | |||
<syntaxhighlight lang="php"> | |||
<?php | |||
require_once('vendor/autoload.php'); | |||
use MultiTheftAuto\Sdk\Mta; | |||
$input = Mta::getInput(); | |||
Mta::doReturn($input[0] + $input[1]); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
'''Lua:''' | |||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="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 | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == Releases == | ||
Visit [https://github.com/multitheftauto/mtasa-php-sdk/releases the releases page on GitHub] to download the SDK. | |||
=== Note for Python === | |||
There is a community made Python SDK with the same semantics on [https://gitlab.com/OwlGamingCommunity/mta-python-sdk the OwlGaming Gitlab] for use on Python projects. | |||
== Version History == | |||
You can see in the [https://github.com/multitheftauto/mtasa-php-sdk/blob/master/CHANGELOG.md repository changelog file] the changes applied. | |||
[[Category:Tutorials]] | |||
[[Category:SDK]] |
Latest revision as of 10:18, 15 July 2024
You can access the MTA Web Interface from almost any programming language that can request web pages. 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.
Installation
Prerequisites
This SDK requires PHP 7.1 or greater.
HTTPlug client abstraction
As this SDK uses HTTPlug, you will have to require some libraries for get it working. See “HTTPlug for library users” for more info.
- warning: Note: If you don’t follow this requirement before require the SDK, composer will throw you an error.
Setup
The only supported installation method is via Composer. Run the following command to require this SDK in your project:
composer require multitheftauto/mtasa-php-sdk
A simple example
There are three ways to call an MTA server’s exported functions, as shown in the following example:
<?php require_once('vendor/autoload.php'); use MultiTheftAuto\Sdk\Mta; use MultiTheftAuto\Sdk\Model\Server; use MultiTheftAuto\Sdk\Model\Authentication; $server = new Server('127.0.0.1', 22005); $auth = new Authentication('myUser', 'myPassword'); $mta = new Mta($server, $auth); $response = $mta->getResource('someResource')->call('callableFunction', $arg1, $arg2, $arg3, ...); // or $response = $mta->getResource('someResource')->call->callableFunction($arg1, $arg2, $arg3, ...); var_dump($response);
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)
<?php require_once('vendor/autoload.php'); use MultiTheftAuto\Sdk\Mta; $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
Releases
Visit the releases page on GitHub to download the SDK.
Note for Python
There is a community made Python SDK with the same semantics on the OwlGaming Gitlab for use on Python projects.
Version History
You can see in the repository changelog file the changes applied.