Skip to content

Commit 59b7746

Browse files
committed
Add magic getter to have another way for getResource
1 parent 89bf016 commit 59b7746

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ composer require multitheftauto/mtasa-php-sdk
2626
As this SDK use HTTPlug, you will have to require some libraries for get it working. See at [HTTPlug for library users](http://docs.php-http.org/en/latest/httplug/users.html).
2727
## A simple example
2828

29+
You have multiple combinations for calling a mta server exported functions. Three ways are shown in example:
2930
```php
3031
<?php
3132

@@ -42,5 +43,8 @@ $mta = new Mta($server, $credential);
4243
$response = $mta->getResource('someResource')->call('callableFunction');
4344
//or
4445
$response = $mta->getResource('someResource')->callableFunction();
46+
//or also
47+
$response = $mta->someResource->callableFunction();
48+
4549
var_dump($response);
4650
```

src/Mta.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ public function getResource(string $resourceName): MtaResource
8181
return $resource;
8282
}
8383

84-
8584
/**
8685
* @codeCoverageIgnore
8786
*/
@@ -105,6 +104,11 @@ public function callFunction(string $resourceName, string $function, array $argu
105104
return $out?? null;
106105
}
107106

107+
public function __get($name)
108+
{
109+
return $this->getResource($name);
110+
}
111+
108112
protected function do_post_request($path, $json_data): string
109113
{
110114
$request = $this->messageFactory->createRequest('POST', sprintf('%s/%s', $this->server->getBaseUri(), $path), [], $json_data);

tests/Functional/MtaTest.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,24 @@ public function testItReturnResource()
7777
$client = new Client();
7878
$mta = new Mta($server, $credential, $client);
7979

80-
$this->assertInstanceOf(Resource::class, $mta->getResource('someResource'));
80+
$resourceName = 'someResource';
81+
$resource = $mta->getResource($resourceName);
82+
83+
$this->assertInstanceOf(Resource::class, $resource);
84+
$this->assertEquals($resourceName, $resource->getName());
85+
}
86+
87+
public function testItReturnResource2()
88+
{
89+
$server = $this->createMock(Server::class);
90+
$credential = $this->createMock(Credential::class);
91+
$client = new Client();
92+
$mta = new Mta($server, $credential, $client);
93+
94+
$resourceName = 'someResource';
95+
$resource = $mta->$resourceName;
96+
97+
$this->assertInstanceOf(Resource::class, $resource);
98+
$this->assertEquals($resourceName, $resource->getName());
8199
}
82100
}

0 commit comments

Comments
 (0)