diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3ab1269 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +# @see http://EditorConfig.org + +root = true + +[src/**] +charset = utf-8 +end_of_line = lf +tab_width = 4 +indent_style = space +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/src/Provider/SeptemberFirstProvider.php b/src/Provider/SeptemberFirstProvider.php index 00564c2..643f292 100755 --- a/src/Provider/SeptemberFirstProvider.php +++ b/src/Provider/SeptemberFirstProvider.php @@ -6,6 +6,7 @@ namespace Sept\OAuth2\Client\Provider; use League\OAuth2\Client\Provider\Exception\IdentityProviderException; use League\OAuth2\Client\Provider\GenericProvider; +use League\OAuth2\Client\Provider\ResourceOwnerInterface; use League\OAuth2\Client\Token\AccessToken; use League\OAuth2\Client\Tool\BearerAuthorizationTrait; use Psr\Http\Message\ResponseInterface; @@ -28,7 +29,7 @@ class SeptemberFirstProvider extends GenericProvider const API_BASE = 'https://api.1sept.ru'; /** - * @var array Разрешения (scopes) по умолчанию + * @var string[] Разрешения (scopes) по умолчанию */ const SCOPES_DEFAULT = ['profile']; @@ -52,6 +53,12 @@ class SeptemberFirstProvider extends GenericProvider */ const USERINFO_PATH = '/2.0/userinfo'; + /** + * Undocumented function + * + * @param mixed[] $options + * @param object[] $collaborators + */ public function __construct(array $options = [], array $collaborators = []) { $defaultOptions = [ @@ -66,7 +73,13 @@ class SeptemberFirstProvider extends GenericProvider } /** - * @inheritDoc + * Checks a provider response for errors. + * + * @param ResponseInterface $response + * @param mixed[]|string $data — Parsed response data + * @return void + * + * @throws IdentityProviderException */ protected function checkResponse(ResponseInterface $response, $data): void { @@ -76,7 +89,11 @@ class SeptemberFirstProvider extends GenericProvider } /** - * @inheritDoc + * Generates a resource owner object from a successful resource owner details request. + * + * @param mixed[] $response + * @param AccessToken $token + * @return SeptemberFirstUser */ protected function createResourceOwner(array $response, AccessToken $token): SeptemberFirstUser { diff --git a/src/Provider/SeptemberFirstUser.php b/src/Provider/SeptemberFirstUser.php index f66b246..76ca7c6 100755 --- a/src/Provider/SeptemberFirstUser.php +++ b/src/Provider/SeptemberFirstUser.php @@ -14,10 +14,13 @@ class SeptemberFirstUser implements ResourceOwnerInterface const AVATAR_BASE = 'https://avatar.1sept.ru'; /** - * @var array Массив с данными о пользователе + * @var mixed[] Массив с данными о пользователе */ - protected $data; + protected array $data; + /** + * @param mixed[] $response + */ public function __construct(array $response) { $this->data = $response; @@ -26,7 +29,7 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * Массив с данными о пользователе * - * @return array + * @return mixed[] */ public function toArray(): array { @@ -58,7 +61,7 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * Фамилия * - * @var string|null + * @return string|null */ public function getLastName(): ?string { @@ -68,7 +71,7 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * Имя * - * @var string|null + * @return string|null */ public function getFirstName(): ?string { @@ -78,7 +81,7 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * Отчество * - * @var string|null + * @return string|null */ public function getMiddleName(): ?string { @@ -200,8 +203,9 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * URL аватарки c максимальным размером * - * @param bool $useVersion Использовать версию аватарки для улучшенного кэширования + * @param bool $addVersion Использовать версию аватарки для улучшенного кэширования * @return string|null + * * @example https://avatar.1sept.ru/12121212-3456-7243-2134-432432144221.max.jpeg?v=12345 */ public function getAvatarMaxUrl(bool $addVersion = false): ?string @@ -260,7 +264,7 @@ class SeptemberFirstUser implements ResourceOwnerInterface /** * Номера телефонов * - * @return array|null + * @return array> * @example [ * [ * "canonical" => "+79161234567", @@ -533,9 +537,9 @@ class SeptemberFirstUser implements ResourceOwnerInterface * Элемент массива данных о пользователе * * @param string $key Ключ поля (например: email или name.first — вложенность оформляется точкой) - * @return mixed|null + * @return mixed */ - protected function getField(string $key) + protected function getField(string $key): mixed { return static::getFieldFromArray($key, $this->data); } @@ -544,9 +548,10 @@ class SeptemberFirstUser implements ResourceOwnerInterface * Значение массива (многомерного) * * @param string $key Ключ поля (например: `email` или `name.first` — вложенность оформляется точкой) - * @return mixed|null + * @param mixed[] $array + * @return mixed */ - public static function getFieldFromArray(string $key, ?array $array) + public static function getFieldFromArray(string $key, ?array $array): mixed { if (strpos($key, '.')) { // key.subKey.subSubKey list ($key, $subKey) = explode('.', $key, 2);