Перенос на php 8
This commit is contained in:
parent
e07b82ddde
commit
615518a7b2
|
@ -30,13 +30,6 @@ use hood\vk\core,
|
|||
*/
|
||||
final class longpoll
|
||||
{
|
||||
/**
|
||||
* Робот
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private robot $robot;
|
||||
|
||||
/**
|
||||
* Ключ к серверу
|
||||
*
|
||||
|
@ -71,7 +64,7 @@ final class longpoll
|
|||
*
|
||||
* @param robot $robot Робот
|
||||
*/
|
||||
public function __construct(robot $robot)
|
||||
public function __construct(private robot $robot)
|
||||
{
|
||||
// Инициализация робота
|
||||
if (!isset($robot->id)) {
|
||||
|
@ -82,7 +75,6 @@ final class longpoll
|
|||
throw new Exception('Необходимо указать версию используемого API ВКонтакте');
|
||||
}
|
||||
|
||||
$this->robot = $robot;
|
||||
|
||||
// Остановка процессов-дубликатов
|
||||
if (!file_exists(core::init()->path_temp)) {
|
||||
|
@ -186,7 +178,7 @@ final class longpoll
|
|||
}
|
||||
}
|
||||
|
||||
return $this->robot->browser->request('POST', 'groups.setLongPollSettings', $settings);
|
||||
return $this->robot->browser->request(method: 'POST', uri: 'groups.setLongPollSettings', options: $settings);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -202,8 +194,7 @@ final class longpoll
|
|||
// Если не инициализирован LongPoll-сервер
|
||||
|
||||
// Запрос на получение доступа и данных LongPoll-сервера
|
||||
echo 'запрос на получение данных лонгполл';
|
||||
$response = json_decode($this->robot->browser->request('POST', 'groups.getLongPollServer', [
|
||||
$response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [
|
||||
'form_params' => [
|
||||
'group_id' => $this->robot->id,
|
||||
'v' => $this->robot->version,
|
||||
|
|
|
@ -23,21 +23,6 @@ use hood\vk\robots\robot,
|
|||
*/
|
||||
final class messages extends method
|
||||
{
|
||||
/**
|
||||
* @param string $message Сообщение
|
||||
*/
|
||||
protected string $message;
|
||||
|
||||
/**
|
||||
* @param int|string|array|null $destination Получатель
|
||||
*/
|
||||
protected $destination;
|
||||
|
||||
/**
|
||||
* @param array $attachments Вложения
|
||||
*/
|
||||
protected array $attachments = [];
|
||||
|
||||
/**
|
||||
* @param int $mode Режим отправки
|
||||
*/
|
||||
|
@ -51,34 +36,16 @@ final class messages extends method
|
|||
* @param robot $robot Робот
|
||||
* @param string $message Текст
|
||||
* @param int|string|array|null $destination Получатель
|
||||
* @param string|null ...$attachments Вложения
|
||||
* @param array $attachments Вложения
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function __construct(robot $robot, string $message, $destination = null, string ...$attachments)
|
||||
{
|
||||
// Инициализация параметров
|
||||
|
||||
// Робот
|
||||
$this->robot = $robot;
|
||||
|
||||
// Сообщение
|
||||
$this->message = $message;
|
||||
|
||||
// Получатель
|
||||
if (isset($destination)) {
|
||||
$this->destination = $destination;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
// Вложения
|
||||
if (isset($attachments)) {
|
||||
$this->attachments = $attachments;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
public function __construct(
|
||||
protected robot $robot,
|
||||
protected string $message,
|
||||
protected int|string|array|null $destination = null,
|
||||
protected array $attachments = []
|
||||
) {
|
||||
// Отправка, если все параметры инициализированы
|
||||
return $this->send($destination);
|
||||
}
|
||||
|
@ -92,7 +59,7 @@ final class messages extends method
|
|||
*
|
||||
* @return array Ответ сервера
|
||||
*/
|
||||
public function send($destination): array
|
||||
public function send(int|string|array $destination): array
|
||||
{
|
||||
// Идентификатор сообщения
|
||||
$random_id = time();
|
||||
|
@ -103,28 +70,25 @@ final class messages extends method
|
|||
}
|
||||
|
||||
# Ключ
|
||||
if ($this->robot instanceof group) {
|
||||
match (true) {
|
||||
// Робот-группа
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
} else if ($this->robot instanceof User) {
|
||||
$this->robot instanceof group => $settings['access_token'] = $this->robot->key,
|
||||
// Робот-пользователь
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
}
|
||||
$this->robot instanceof User => $settings['access_token'] = $this->robot->key
|
||||
};
|
||||
|
||||
// Версия API
|
||||
$settings['v'] = $this->robot->version;
|
||||
|
||||
// Цель отправки
|
||||
if (is_int($destination)) {
|
||||
match (true) {
|
||||
// Отправить по идентификатору
|
||||
$settings['peer_id'] = $destination;
|
||||
} else if (is_array($destination)) {
|
||||
is_int($destination) => $settings['peer_id'] = $destination,
|
||||
// Массовая отправка по идентификаторам
|
||||
$settings['user_ids'] = $destination;
|
||||
} else {
|
||||
// Отправить по домену
|
||||
$settings['domain'] = $destination;
|
||||
}
|
||||
is_array($destination) => $settings['user_ids'] = $destination,
|
||||
// Отправить по домену
|
||||
default => $settings['domain'] = $destination
|
||||
};
|
||||
|
||||
// Сообщение
|
||||
$settings['message'] = $this->message;
|
||||
|
@ -135,7 +99,7 @@ final class messages extends method
|
|||
// Фильтрация вложений
|
||||
$forward_messages = [];
|
||||
foreach ($this->attachments as &$attachment) {
|
||||
if (iconv_substr($attachment, 0, 7, "UTF-8") === 'message') {
|
||||
if (iconv_substr(str: $attachment, offset: 0, length: 7, charset: "UTF-8") === 'message') {
|
||||
// Если среди вложений найдено сообщение для пересылки
|
||||
$forward_messages[] = $attachment;
|
||||
unset($attachment);
|
||||
|
@ -144,17 +108,17 @@ final class messages extends method
|
|||
|
||||
if (!empty($forward_messages)) {
|
||||
// Если есть пересылаемые сообщения
|
||||
$settings['forward_messages'] = implode(',', $forward_messages);
|
||||
$settings['forward_messages'] = implode(glue: ',', pieces: $forward_messages);
|
||||
}
|
||||
|
||||
if (!empty($attachments)) {
|
||||
// Если есть вложения
|
||||
$settings['attachment'] = implode(',', $attachments);
|
||||
$settings['attachment'] = implode(glue: ',', pieces: $attachments);
|
||||
}
|
||||
|
||||
// Запрос
|
||||
$request = $this->robot->browser->request('POST', 'messages.send', ['form_params' => $settings]);
|
||||
|
||||
$request = $this->robot->browser->request(method: 'POST', uri: 'messages.send', options: ['form_params' => $settings]);
|
||||
|
||||
// Очистка
|
||||
unset($settings);
|
||||
|
||||
|
@ -165,13 +129,12 @@ final class messages extends method
|
|||
// Если пришел ID сообщения
|
||||
|
||||
// Ключ
|
||||
if ($this->robot instanceof Group) {
|
||||
match (true) {
|
||||
// Робот-группа
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
} else if ($this->robot instanceof User) {
|
||||
$this->robot instanceof Group => $settings['access_token'] = $this->robot->key,
|
||||
// Робот-пользователь
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
}
|
||||
$this->robot instanceof User => $settings['access_token'] = $this->robot->key
|
||||
};
|
||||
|
||||
// Версия API
|
||||
$settings['v'] = $this->robot->version;
|
||||
|
@ -180,7 +143,7 @@ final class messages extends method
|
|||
$settings['message_ids'] = $request["response"];
|
||||
|
||||
// Запрос
|
||||
if ($this->robot->browser()->post('https://api.vk.com/method/messages.getById', $settings)['response']['count'] === 0) {
|
||||
if ($this->robot->browser->post(uri: 'https://api.vk.com/method/messages.getById', options: $settings)['response']['count'] === 0) {
|
||||
// Если сообщения не существует, то повторить отправку
|
||||
$this->send($destination);
|
||||
}
|
||||
|
@ -200,25 +163,22 @@ final class messages extends method
|
|||
public function info(): array
|
||||
{
|
||||
# Ключ
|
||||
if ($this->robot instanceof group) {
|
||||
match (true) {
|
||||
// Робот-группа
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
} else if ($this->robot instanceof User) {
|
||||
$this->robot instanceof group => $settings['access_token'] = $this->robot->key,
|
||||
// Робот-пользователь
|
||||
$settings['access_token'] = $this->robot->key;
|
||||
}
|
||||
$this->robot instanceof User => $settings['access_token'] = $this->robot->key
|
||||
};
|
||||
|
||||
// Цель отправки
|
||||
if (is_int($this->destination)) {
|
||||
match (true) {
|
||||
// Отправить по идентификатору
|
||||
$settings['peer_id'] = $this->destination;
|
||||
} else if (is_array($this->destination)) {
|
||||
is_int($this->destination) => $settings['peer_id'] = $this->destination,
|
||||
// Массовая отправка по идентификаторам
|
||||
$settings['user_ids'] = $this->destination;
|
||||
} else {
|
||||
// Отправить по домену
|
||||
$settings['domain'] = $this->destination;
|
||||
}
|
||||
is_array($this->destination) => $settings['user_ids'] = $this->destination,
|
||||
// Отправить по домену
|
||||
default => $settings['domain'] = $this->destination
|
||||
};
|
||||
|
||||
// Версия API
|
||||
$settings['v'] = $this->robot->version;
|
||||
|
@ -232,7 +192,7 @@ final class messages extends method
|
|||
// Фильтрация вложений
|
||||
$forward_messages = [];
|
||||
foreach ($this->attachments as &$attachment) {
|
||||
if (iconv_substr($attachment, 0, 7, "UTF-8") === 'message') {
|
||||
if (iconv_substr(str: $attachment, offset: 0, length: 7, charset: "UTF-8") === 'message') {
|
||||
// Если среди вложений найдено сообщение для пересылки
|
||||
$forward_messages[] = $attachment;
|
||||
unset($attachment);
|
||||
|
|
|
@ -19,13 +19,6 @@ use hood\vk\robots\robot;
|
|||
*/
|
||||
abstract class method
|
||||
{
|
||||
/**
|
||||
* Робот
|
||||
*
|
||||
* @param robot $robot Робот
|
||||
*/
|
||||
protected robot $robot;
|
||||
|
||||
/**
|
||||
* Создать
|
||||
*
|
||||
|
|
|
@ -40,7 +40,7 @@ final class photos
|
|||
*
|
||||
* @return array|null Ответ сервера
|
||||
*/
|
||||
public static function save(robot $robot, int $album_id, array $images, ?string $caption = null, ?int $group_id = null, ?float $latitude = null, ?float $longitude = null): ?array
|
||||
public static function save(robot $robot, int $album_id, array $images,string $upload_url = null, string|null $caption = null, int|null $group_id = null, float|null $latitude = null, float|null $longitude = null): ?array
|
||||
{
|
||||
if (isset($robot->account)) {
|
||||
// Если инициализирован аккаунт
|
||||
|
@ -61,7 +61,8 @@ final class photos
|
|||
$settings['group_id'] = $group_id;
|
||||
}
|
||||
|
||||
$upload = self::upload(...$images);
|
||||
//загрузить
|
||||
$upload = self::uploadMessage($robot, $upload_url, ...$images);
|
||||
|
||||
// Сервер
|
||||
$settings['server'] = $upload['server'];
|
||||
|
@ -104,10 +105,27 @@ final class photos
|
|||
if (count($images) > 5) {
|
||||
throw new Exception('Запрещено отправлять более 5 фотографий');
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* загрузить фото сообщение
|
||||
*/
|
||||
public static function uploadMessage(robot $robot, string $upload_url, string ...$images)
|
||||
{
|
||||
return $robot->browser->api($upload_url, ...$images);
|
||||
}
|
||||
|
||||
/**
|
||||
* Отправить фото сообщение
|
||||
*/
|
||||
public function sendPhoto(robot $robot, string $message = '', $destination, $photo)
|
||||
{
|
||||
$robot->message(robot: $robot,message: $message, destination: $destination,attachments: $photo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Получить сервер для загрузки изображений
|
||||
*
|
||||
|
@ -119,7 +137,7 @@ final class photos
|
|||
*
|
||||
* @return array|null Ответ сервера
|
||||
*/
|
||||
public static function getUploadServer(robot $robot, ?int $album_id = null, $group_id = null): ?array
|
||||
public static function getUploadServer(robot $robot, int|null $album_id = null, int|group|null $group_id = null): ?array
|
||||
{
|
||||
if (isset($robot->account)) {
|
||||
// Если инициализирован аккаунт
|
||||
|
@ -133,11 +151,10 @@ final class photos
|
|||
$settings['v'] = $robot->version;
|
||||
|
||||
// Альбом
|
||||
if (isset($album_id)) {
|
||||
$settings['album_id'] = $album_id;
|
||||
} else {
|
||||
$settings['album_id'] = self::getAlbums($robot);
|
||||
}
|
||||
match (true) {
|
||||
isset($album_id) => $settings['album_id'] = $album_id,
|
||||
default => $settings['album_id'] = self::getAlbums($robot)
|
||||
};
|
||||
|
||||
// Группа
|
||||
if (isset($group_id)) {
|
||||
|
|
|
@ -124,7 +124,7 @@ final class core
|
|||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function get(int $id = null, int $session = null)
|
||||
public function get(int|null $id = null, int|null $session = null)
|
||||
{
|
||||
if (isset($id) && array_key_exists($id, $this->registry)) {
|
||||
// Робот передан и найден
|
||||
|
@ -147,7 +147,7 @@ final class core
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function delete(int $id = null, int $session = null): void
|
||||
public function delete(int|null $id = null, int|null $session = null): void
|
||||
{
|
||||
if (isset($id)) {
|
||||
// Робот передан
|
||||
|
@ -195,31 +195,24 @@ final class core
|
|||
*/
|
||||
public function __set($name, $value): void
|
||||
{
|
||||
if ($name === 'timezone') {
|
||||
if (!isset($this->timezone)) {
|
||||
$this->timezone = $value;
|
||||
} else {
|
||||
throw new Exception('Запрещено переопределять часовой пояс');
|
||||
}
|
||||
} else if ($name === 'path_root') {
|
||||
if (!isset($this->path_root)) {
|
||||
$this->path_root = $value;
|
||||
} else {
|
||||
throw new Exception('Запрещено переопределять корневой каталог');
|
||||
}
|
||||
} else if ($name === 'path_logs') {
|
||||
if (!isset($this->path_logs)) {
|
||||
$this->path_logs = $value;
|
||||
} else {
|
||||
throw new Exception('Запрещено переопределять каталог журналов');
|
||||
}
|
||||
} else if ($name === 'path_temp') {
|
||||
if (!isset($this->path_temp)) {
|
||||
$this->path_temp = $value;
|
||||
} else {
|
||||
throw new Exception('Запрещено переопределять каталог временных файлов');
|
||||
}
|
||||
}
|
||||
match ($name) {
|
||||
'timezone' => match (true) {
|
||||
!isset($this->timezone) => $this->timezone = $value,
|
||||
default => throw new Exception('Запрещено переопределять часовой пояс')
|
||||
},
|
||||
'path_root' => match (true) {
|
||||
!isset($this->path_root) => $this->path_root = $value,
|
||||
default => throw new Exception('Запрещено переопределять корневой каталог')
|
||||
},
|
||||
'path_logs' => match (true) {
|
||||
!isset($this->path_logs) => $this->path_logs = $value,
|
||||
default => throw new Exception('Запрещено переопределять каталог журналов')
|
||||
},
|
||||
'path_temp' => match (true) {
|
||||
!isset($this->path_temp) => $this->path_temp = $value,
|
||||
default => throw new Exception('Запрещено переопределять каталог временных файлов')
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -231,33 +224,29 @@ final class core
|
|||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
if ($name === 'robots') {
|
||||
return $this->robots;
|
||||
} else if ($name === 'timezone') {
|
||||
if (!isset($this->timezone)) {
|
||||
// Значение по умолчанию
|
||||
$this->timezone = 'Europe/Moscow';
|
||||
return match ($name) {
|
||||
'robots' => $this->robots,
|
||||
'timezone' => match (true) {
|
||||
// Значение по умолчанию
|
||||
!isset($this->timezone) => $this->timezone = 'Europe/Moscow',
|
||||
default => $this->timezone
|
||||
},
|
||||
'path_root' => match (true) {
|
||||
// Значение по умолчанию
|
||||
!isset($this->path_root) => $this->path_root = dirname(__DIR__),
|
||||
default => $this->path_root
|
||||
},
|
||||
'path_logs' => match (true) {
|
||||
// Значение по умолчанию
|
||||
!isset($this->path_logs) => $this->path_logs = $this->path_root . '/logs',
|
||||
default => $this->path_logs
|
||||
},
|
||||
'path_temp' => match (true) {
|
||||
// Значение по умолчанию
|
||||
!isset($this->path_temp) => $this->path_temp = $this->path_root . '/temp',
|
||||
default => $this->path_temp
|
||||
}
|
||||
return $this->timezone;
|
||||
} else if ($name === 'path_root') {
|
||||
if (!isset($this->path_root)) {
|
||||
// Значение по умолчанию
|
||||
$this->path_root = dirname(__DIR__);
|
||||
}
|
||||
return $this->path_root;
|
||||
} else if ($name === 'path_logs') {
|
||||
if (!isset($this->path_logs)) {
|
||||
// Значение по умолчанию
|
||||
$this->path_logs = $this->path_root . '/logs';
|
||||
}
|
||||
return $this->path_logs;
|
||||
} else if ($name === 'path_temp') {
|
||||
if (!isset($this->path_temp)) {
|
||||
// Значение по умолчанию
|
||||
$this->path_temp = $this->path_root . '/temp';
|
||||
}
|
||||
return $this->path_temp;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -46,13 +46,12 @@ final class group extends robot
|
|||
} catch (Throwable $e) {
|
||||
// Если свойство не найдено в родительском методе
|
||||
|
||||
if ($name === 'longpoll') {
|
||||
if ($value instanceof LongPoll) {
|
||||
$this->longpoll = $value;
|
||||
} else {
|
||||
$this->longpoll = new LongPoll($this);
|
||||
match ($name) {
|
||||
'longpoll' => match (true) {
|
||||
$value instanceof LongPoll => $this->longpoll = $value,
|
||||
default => $this->longpoll = new LongPoll($this)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
throw new Exception($e->getMessage(), $e->getCode(), $e->getPrevious());
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ abstract class robot
|
|||
* @param int|null $id Идентификатор
|
||||
* @param float|null $version Версия API
|
||||
*/
|
||||
public function __construct(int $id = null, float $version = null)
|
||||
public function __construct(int|null $id = null, float|null $version = null)
|
||||
{
|
||||
// Инициализация ядра
|
||||
$core = core::init();
|
||||
|
@ -185,61 +185,37 @@ abstract class robot
|
|||
*/
|
||||
public function __set(string $name, $value): void
|
||||
{
|
||||
if ($name === 'id') {
|
||||
if (!isset($this->id)) {
|
||||
$this->id = (int) $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать идентификатор');
|
||||
}
|
||||
} else if ($name === 'session') {
|
||||
if (!isset($this->session)) {
|
||||
$this->session = (int) $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать сессию');
|
||||
}
|
||||
} else if ($name === 'key') {
|
||||
if (!isset($this->key)) {
|
||||
$this->key = (string) $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать ключ');
|
||||
}
|
||||
} else if ($name === 'version') {
|
||||
if (!isset($this->version)) {
|
||||
$this->version = (float) $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать версию API');
|
||||
}
|
||||
} else if ($name === 'account') {
|
||||
if (!isset($this->account) && $value instanceof account) {
|
||||
$this->account = $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать аккаунт');
|
||||
}
|
||||
} else if ($name === 'browser') {
|
||||
if (!isset($this->browser) && $value instanceof browser) {
|
||||
$this->browser = $value;
|
||||
return;
|
||||
} else {
|
||||
throw new Exception('Запрещено перезаписывать браузер');
|
||||
}
|
||||
} else if ($name === 'proxy') {
|
||||
$this->proxy = $value;
|
||||
return;
|
||||
} else if ($name === 'captcha') {
|
||||
$this->captcha = $value;
|
||||
return;
|
||||
} else if ($name === 'messages_new') {
|
||||
$this->messages_new = (int) $value;
|
||||
return;
|
||||
}
|
||||
|
||||
// Если свойство не найдено
|
||||
throw new Exception('Свойство не найдено: ' . $name);
|
||||
match ($name) {
|
||||
'id' => match (true) {
|
||||
!isset($this->id) => $this->id = (int) $value,
|
||||
default => throw new Exception('Запрещено перезаписывать идентификатор')
|
||||
},
|
||||
'session' => match (true) {
|
||||
!isset($this->session) => $this->session = (int) $value,
|
||||
default => throw new Exception('Запрещено перезаписывать сессию')
|
||||
},
|
||||
'key' => match (true) {
|
||||
!isset($this->key) => $this->key = (string) $value,
|
||||
default => throw new Exception('Запрещено перезаписывать ключ')
|
||||
},
|
||||
'version' => match (true) {
|
||||
!isset($this->version) => $this->version = (float) $value,
|
||||
default => throw new Exception('Запрещено перезаписывать версию API')
|
||||
},
|
||||
'account' => match (true) {
|
||||
!isset($this->account) && $value instanceof account => $this->account = $value,
|
||||
default => throw new Exception('Запрещено перезаписывать аккаунт')
|
||||
},
|
||||
'browser' => match (true) {
|
||||
!isset($this->browser) && $value instanceof browser => $this->browser = $value,
|
||||
default => throw new Exception('Запрещено перезаписывать браузер')
|
||||
},
|
||||
'proxy' => $this->proxy = $value,
|
||||
'captcha' => $this->captcha = $value,
|
||||
'messages_new' => $this->messages_new = (int) $value,
|
||||
// Если свойство не найдено:
|
||||
default => throw new Exception('Свойство не найдено: ' . $name)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -251,50 +227,37 @@ abstract class robot
|
|||
*/
|
||||
public function __get(string $name)
|
||||
{
|
||||
if ($name === 'id') {
|
||||
if (isset($this->id)) {
|
||||
return $this->id;
|
||||
} else {
|
||||
throw new Exception('Идентификатор не инициализирован');
|
||||
}
|
||||
} else if ($name === 'session') {
|
||||
if (isset($this->session)) {
|
||||
return $this->session;
|
||||
} else {
|
||||
throw new Exception('Сессия не инициализирована');
|
||||
}
|
||||
} else if ($name === 'key') {
|
||||
if (isset($this->key)) {
|
||||
return $this->key;
|
||||
} else {
|
||||
throw new Exception('Ключ не инициализирован');
|
||||
}
|
||||
} else if ($name === 'account') {
|
||||
if (isset($this->account)) {
|
||||
return $this->account;
|
||||
} else {
|
||||
throw new Exception('Аккаунт не инициализирован');
|
||||
}
|
||||
} else if ($name === 'version') {
|
||||
if (isset($this->version)) {
|
||||
return $this->version;
|
||||
} else {
|
||||
throw new Exception('Версия не инициализирована');
|
||||
}
|
||||
} else if ($name === 'browser') {
|
||||
return $this->browser ?? $this->browser = new browser([
|
||||
return match ($name) {
|
||||
'id' => match (true) {
|
||||
isset($this->id) => $this->id,
|
||||
default => throw new Exception('Идентификатор не инициализирован')
|
||||
},
|
||||
'session' => match (true) {
|
||||
isset($this->session) => $this->session,
|
||||
default => throw new Exception('Сессия не инициализирована')
|
||||
},
|
||||
'key' => match (true) {
|
||||
isset($this->key) => $this->key,
|
||||
default => throw new Exception('ключ не инициализирован')
|
||||
},
|
||||
'version' => match (true) {
|
||||
isset($this->version) => $this->version,
|
||||
default => throw new Exception('Версия не инициализирована')
|
||||
},
|
||||
'account' => match (true) {
|
||||
isset($this->account) => $this->account,
|
||||
default => throw new Exception('Аккаунт не инициализирован')
|
||||
},
|
||||
'browser' => $this->browser ?? $this->browser = new browser([
|
||||
'base_uri' => 'https://api.vk.com/method/',
|
||||
'cookies' => true
|
||||
]);
|
||||
} else if ($name === 'proxy') {
|
||||
return $this->proxy;
|
||||
} else if ($name === 'captcha') {
|
||||
return $this->captcha;
|
||||
} else if ($name === 'messages_new') {
|
||||
return $this->messages_new;
|
||||
}
|
||||
|
||||
throw new Exception('Свойство не найдено: ' . $name);
|
||||
]),
|
||||
'proxy' => $this->proxy,
|
||||
'captcha' => $this->captcha,
|
||||
'messages_new' => $this->messages_new,
|
||||
// Если свойство не найдено:
|
||||
default => throw new Exception('Свойство не найдено: ' . $name)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -306,27 +269,18 @@ abstract class robot
|
|||
*/
|
||||
public function __isset(string $name)
|
||||
{
|
||||
if ($name === 'id') {
|
||||
return isset($this->id);
|
||||
} else if ($name === 'session') {
|
||||
return isset($this->session);
|
||||
} else if ($name === 'key') {
|
||||
return isset($this->key);
|
||||
} else if ($name === 'account') {
|
||||
return isset($this->account);
|
||||
} else if ($name === 'version') {
|
||||
return isset($this->version);
|
||||
} else if ($name === 'browser') {
|
||||
return isset($this->browser);
|
||||
} else if ($name === 'proxy') {
|
||||
return isset($this->proxy);
|
||||
} else if ($name === 'captcha') {
|
||||
return isset($this->captcha);
|
||||
} else if ($name === 'messages_new') {
|
||||
return isset($this->messages_new);
|
||||
}
|
||||
|
||||
throw new Exception('Свойство не найдено: ' . $name);
|
||||
return match ($name) {
|
||||
'id' => isset($this->id),
|
||||
'session' => isset($this->session),
|
||||
'key' => isset($this->key),
|
||||
'account' => isset($this->account),
|
||||
'version' => isset($this->version),
|
||||
'browser' => isset($this->browser),
|
||||
'proxy' => isset($this->proxy),
|
||||
'captcha' => isset($this->captcha),
|
||||
'messages_new' => isset($this->messages_new),
|
||||
default => throw new Exception('Свойство не найдено: ' . $name)
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -52,7 +52,7 @@ trait singleton
|
|||
/**
|
||||
* Заблокирован
|
||||
*/
|
||||
private function __sleep()
|
||||
public function __sleep()
|
||||
{
|
||||
throw new Exception('Сериализация запрещена');
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ trait singleton
|
|||
/**
|
||||
* Заблокирован
|
||||
*/
|
||||
private function __wakeup()
|
||||
public function __wakeup()
|
||||
{
|
||||
throw new Exception('Десериализация запрещена');
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue