From 42969feac6f51d68d85dffc9c3339c757fa872d7 Mon Sep 17 00:00:00 2001 From: naumso Date: Sat, 11 Jan 2025 02:05:15 +0300 Subject: [PATCH] Update VkUser.php --- composer.json | 2 +- src/VkUser.php | 60 ++++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index a132671..c34a4ca 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "1sept/oauth2-vkontakte", - "version": "2.1.1", + "version": "2.1.2", "description": "VK provider for league/oauth2-client", "keywords": [ "league", diff --git a/src/VkUser.php b/src/VkUser.php index 8aeea9a..a9105bb 100644 --- a/src/VkUser.php +++ b/src/VkUser.php @@ -11,10 +11,7 @@ use League\OAuth2\Client\Provider\ResourceOwnerInterface; */ class VkUser implements ResourceOwnerInterface { - /** - * @var array - */ - protected $response; + protected array $response; /** * User constructor. @@ -24,11 +21,17 @@ class VkUser implements ResourceOwnerInterface $this->response = $response; } + /** + * Вернуть все поля массивом + */ public function toArray(): array { return $this->response; } + /** + * Идентификатор пользователя. + */ public function getId(): int { return (int) ((bool) $this->getField('uid') ? $this->getField('uid') : $this->getField('id')); @@ -43,8 +46,8 @@ class VkUser implements ResourceOwnerInterface } /** - * Дата рождения. Возвращается в формате D.M.YYYY или D.M (если год рождения скрыт). Если дата рождения скрыта целиком, поле отсутствует в ответе - * + * Дата рождения. Возвращается в формате D.M.YYYY или D.M (если год рождения скрыт). Если дата рождения скрыта целиком, поле отсутствует в ответе. + * * @return string|null DD.MM.YYYY */ public function getBirthday(): ?string @@ -53,6 +56,10 @@ class VkUser implements ResourceOwnerInterface } /** + * Информация о городе, указанном на странице пользователя в разделе «Контакты». Возвращаются следующие поля: + * id (integer) — идентификатор города, который можно использовать для получения его названия с помощью метода database.getCitiesById; + * title (string) — название города. + * * @return array [id =>, title => string] */ public function getCity(): ?array @@ -61,6 +68,10 @@ class VkUser implements ResourceOwnerInterface } /** + * Информация о стране, указанной на странице пользователя в разделе «Контакты». Возвращаются следующие поля: + * id (integer) — идентификатор страны, который можно использовать для получения ее названия с помощью метода database.getCountriesById; + * title (string) — название страны. + * * @return array [id =>, title => string] */ public function getCountry(): ?array @@ -69,6 +80,9 @@ class VkUser implements ResourceOwnerInterface } /** + * Короткий адрес страницы. Возвращается строка, содержащая короткий адрес страницы (например, andrew). + * Если он не назначен, возвращается "id"+user_id, например, id35828305. + * * Short address to user page. */ public function getDomain(): ?string @@ -77,7 +91,7 @@ class VkUser implements ResourceOwnerInterface } /** - * Return firstname. + * Имя. */ public function getFirstName(): ?string { @@ -95,13 +109,16 @@ class VkUser implements ResourceOwnerInterface } /** - * Has user avatar? + * Информация о том, установил ли пользователь фотографию для профиля. Возвращаемые значения: 1 — установил, 0 — не установил. */ public function isHasPhoto(): bool { return (bool) $this->getField('has_photo'); } + /** + * Название родного города. + */ public function getHomeTown(): ?string { return $this->getField('home_town'); @@ -115,39 +132,64 @@ class VkUser implements ResourceOwnerInterface return (bool) $this->getField('is_friend'); } + /** + * Фамилия. + */ public function getLastName(): ?string { return $this->getField('last_name'); } + /** + * Девичья фамилия. + */ public function getMaidenName(): ?string { return $this->getField('maiden_name'); } + /** + * Никнейм (отчество) пользователя. + */ public function getNickname(): ?string { return $this->getField('nickname'); } /** - * It's square! + * URL квадратной фотографии с максимальной шириной. + * Может быть возвращена фотография, имеющая ширину как 200, так и 100 пикселей. + * В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_200.png. */ public function getPhotoMax(): ?string { return $this->getField('photo_max'); } + /** + * URL фотографии максимального размера. Может быть возвращена фотография, + * имеющая ширину как 400, так и 200 пикселей. + * В случае отсутствия у пользователя фотографии возвращается https://vk.com/images/camera_400.png. + */ public function getPhotoMaxOrig(): ?string { return $this->getField('photo_max_orig'); } + /** + * Короткое имя страницы. + */ public function getScreenName(): ?string { return $this->getField('screen_name'); } + /** + * Пол. Возможные значения + * 1 — женский; + * 2 — мужской; + * 0 — пол не указан. + */ public function getSex(): ?int { return $this->getField('sex');