Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
HTTPClient
n/a
0 / 0
n/a
0 / 0
3
n/a
0 / 0
 setClient
n/a
0 / 0
1
n/a
0 / 0
 __callStatic
n/a
0 / 0
2
n/a
0 / 0
1<?php
2
3// {{{ License
4// This file is part of GNU social - https://www.gnu.org/software/social
5//
6// GNU social is free software: you can redistribute it and/or modify
7// it under the terms of the GNU Affero General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10//
11// GNU social is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14// GNU Affero General Public License for more details.
15//
16// You should have received a copy of the GNU Affero General Public License
17// along with GNU social.  If not, see <http://www.gnu.org/licenses/>.
18// }}}
19
20namespace App\Core;
21
22use Symfony\Contracts\HttpClient\HttpClientInterface;
23
24/**
25 * @codeCoverageIgnore
26 */
27abstract class HTTPClient
28{
29    private static ?Httpclientinterface $client;
30    public static function setClient(HttpClientInterface $client)
31    {
32        self::$client = $client;
33    }
34
35    public static function __callStatic(string $name, array $args)
36    {
37        if (in_array(strtoupper($name), ['GET', 'HEAD', 'POST', 'PUT', 'DELETE', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'])) {
38            return self::$client->request(strtoupper($name), ...$args);
39        }
40        return self::$client->{$name}(...$args);
41    }
42}