src/Google.php
<?php declare(strict_types=1); namespace Autowp\ExternalLoginService; use Google_Client;use Laminas\Uri\Http;use Laminas\Uri\UriFactory; use function preg_split; class Google extends AbstractService{ /** @var string */`syntax error, unexpected 'string' (T_STRING), expecting function (T_FUNCTION) or const (T_CONST)` private string $idToken; public function getState(): string { return ''; } public function getLoginUrl(): string { return ''; } public function getFriendsUrl(): string { return ''; } Avoid unused parameters such as '$params'. public function callback(array $params): array { return []; } public function setIDToken(string $idToken): self { $this->idToken = $idToken; return $this; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */Method `getData` has 29 lines of code (exceeds 25 allowed). Consider refactoring.
Function `getData` has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. public function getData(array $options): Result { $clientIDs = preg_split("/[[:space:]]+/isu", $this->options['clientId']); foreach ($clientIDs as $clientID) { if (! $clientID) { continue; } $client = new Google_Client([ 'client_id' => $clientID, ]); $payload = $client->verifyIdToken($this->idToken); if ($payload) { break; } } if (! $payload) { throw new ExternalLoginServiceException("idToken verification failed"); } $photoUrl = $payload['picture']; if ($photoUrl) { $photoUrl = $this->setSizeParam($photoUrl, 640); } return new Result([ 'externalId' => $payload['sub'], 'name' => $payload['name'], 'profileUrl' => '', 'photoUrl' => $photoUrl, 'location' => '', 'language' => $payload['locale'], 'email' => $payload['email'], ]); } public function getFriends(): array { return []; } private function setSizeParam(string $url, int $size): string {Avoid using static access to class '\Laminas\Uri\UriFactory' in method 'setSizeParam'. $uri = UriFactory::factory($url); if ($uri instanceof Http) { $params = $uri->getQueryAsArray(); $params['sz'] = $size; $uri->setQuery($params); $url = $uri->toString(); } return $url; }}