You've already forked redmine-bundle
use new Psr18Client
This commit is contained in:
@@ -2,9 +2,43 @@
|
|||||||
|
|
||||||
namespace Magdev\RedmineBundle\Client;
|
namespace Magdev\RedmineBundle\Client;
|
||||||
|
|
||||||
use Redmine\Client\NativeCurlClient;
|
use Redmine\Client\Psr18Client;
|
||||||
|
use GuzzleHttp\Client as GuzzleClient;
|
||||||
|
use GuzzleHttp\Psr7\HttpFactory as GuzzleHttpFactory;
|
||||||
|
|
||||||
class RedmineClient extends NativeCurlClient
|
final class RedmineClient
|
||||||
{
|
{
|
||||||
|
private ?Psr18Client $client = null;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
string $url,
|
||||||
|
string $apikeyOrUsername,
|
||||||
|
?string $password = null
|
||||||
|
) {
|
||||||
|
$guzzle = new GuzzleClient();
|
||||||
|
$factory = new GuzzleHttpFactory();
|
||||||
|
|
||||||
|
$this->client = new Psr18Client(
|
||||||
|
$guzzle,
|
||||||
|
$factory,
|
||||||
|
$factory,
|
||||||
|
$url,
|
||||||
|
$apikeyOrUsername,
|
||||||
|
$password
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function __call($name, $arguments)
|
||||||
|
{
|
||||||
|
if (!method_exists($this->client, $name)) {
|
||||||
|
throw new \BadMethodCallException(sprintf(
|
||||||
|
'Method %s, doesn\'t exist in class %s',
|
||||||
|
$name,
|
||||||
|
get_class($this->client)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return call_user_func_array([$this->client, $name], $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ final class MagdevRedmineExtension extends Extension
|
|||||||
|
|
||||||
foreach ($config['connections'] as $name => $connection) {
|
foreach ($config['connections'] as $name => $connection) {
|
||||||
$id = sprintf('magdev.redmine.%s', $name);
|
$id = sprintf('magdev.redmine.%s', $name);
|
||||||
|
|
||||||
$container->register($id, RedmineClient::class)
|
$container->register($id, RedmineClient::class)
|
||||||
->setArguments([$connection['url'], $connection['apikey']]);
|
->setArguments([$connection['url'], $connection['apikey']]);
|
||||||
$container->registerAliasForArgument($id, RedmineClient::class, "{$name}Client");
|
$container->registerAliasForArgument($id, RedmineClient::class, "{$name}Client");
|
||||||
|
|||||||
Reference in New Issue
Block a user