Исправления после ошибок слияния

This commit is contained in:
Arsen Mirzaev Tatyano-Muradovich 2021-07-27 14:44:35 +10:00
parent 4840041054
commit 085974f740
4 changed files with 216 additions and 544 deletions

View File

@ -13,6 +13,14 @@ use hood\accounts\vk;
// Подключение библеотек
require_once './vendor/autoload.php';
// Инициализация ядра
$core = core::init();
// Инициализация робота
$robot = $core->group(ACCOUNT_ID)->key(ACCOUNT_KEY);
$robot = $core->auth(ACCOUNT_LOGIN, ACCOUNT_PASSWORD)->key(ACCOUNT_KEY);
// Инициализация пользователя ВКонтакте
$account = (new vk($id))->auth('login', 'password')->key($project_id);
@ -21,4 +29,4 @@ $robot = core::init()->group($account);
// Отправка сообщения
$robot->message($to, 'Привет, я создал робота!');
```
```

View File

@ -171,15 +171,11 @@ final class longpoll
/**
* Получить события
*
<<<<<<< HEAD:hood/vk/system/api/longpoll.php
* $wait Время ожидания новых событий (в секундах)
=======
* @param int $wait Время ожидания новых событий (в секундах)
*
* @todo Проверка на ошибки запроса, включая на наличие доступа к лонгполл у ключа
*
* @return array
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/longpoll.php
*/
public function get(int $wait = 25): array
{
@ -188,15 +184,6 @@ final class longpoll
// Запрос на получение доступа и данных LongPoll-сервера
$response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [
<<<<<<< HEAD:hood/vk/system/api/longpoll.php
'form_params' => [
'group_id' => $this->robot->id,
'v' => $this->robot->version,
'access_token' => $this->robot->key
],
])->getBody()->getContents())->response;
=======
'form_params' => $this->robot->api['settings']
])->getBody()->getContents());
@ -208,7 +195,6 @@ final class longpoll
// Инициализация
$response = $response->response;
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/longpoll.php
// Ключ доступа
$this->key = $response->key;

View File

@ -13,17 +13,6 @@ use Exception;
/**
* Ядро
*
<<<<<<< HEAD
* $robots Количество роботов
* $timezone Временная зона (журналирование)
* $path Пути (архитектура проекта)
*
* protected static function __construct() Инициализация
* public static function init() Запуск инициализации или получение инстанции
* public public function build() Сборщик
* public function set($id, $value) Запись в реестр
* public function get($id = null) Чтение из реестра
=======
* @property-read int $robots Количество роботов
* @property string $timezone Временная зона (журналирование)
* @property array $path Пути (архитектура проекта)
@ -33,7 +22,6 @@ use Exception;
* @method public public function build() Сборщик
* @method public function set($id, $value) Запись в реестр
* @method public function get($id = null) Чтение из реестра
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*
* @package mirzaev\vk
* @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
@ -42,29 +30,13 @@ final class core
{
use singleton;
<<<<<<< HEAD:hood/vk/system/core.php
<<<<<<< HEAD
/**
* Счётчик роботов
=======
/**
=======
/**
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
* Счётчик роботов
*
* @var int
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private int $robots = 0;
/**
* Реестр роботов
<<<<<<< HEAD
=======
*
* @var array
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private array $registry = [];
@ -72,60 +44,32 @@ final class core
* Временная зона
*
* Используется в логировании
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private string $timezone;
/**
* Путь до корня проекта
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private string $path_root;
/**
* Путь до папки журналов
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private string $path_logs;
/**
* Путь до временной папки
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private string $path_temp;
/**
* Запись в журнал
*
<<<<<<< HEAD
* $file Файл для журналирования
=======
* @param string $file Файл для журналирования
*
<<<<<<< HEAD:hood/vk/system/core.php
* @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
* @todo Добавить установку иного журналиста по спецификации PSR-3
* @todo Более гибкое журналирование
*/
public function journal(string $file = null): self
{
@ -138,23 +82,12 @@ final class core
/**
* Записать в реестр
*
<<<<<<< HEAD
* $id Идентификатор
* $robot робот
*
* @see hood\vk\traits\registry Модификация метода
=======
* @param int $id
* @param robot $robot
*
<<<<<<< HEAD:hood/vk/system/core.php
* @see hood\vk\traits\registry Модификация метода
* @see mirzaev\vk\traits\registry Модификация метода
*
* @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
* @see mirzaev\vk\traits\registry Модификация метода
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function write(int $id, robot $robot): void
{
@ -182,23 +115,12 @@ final class core
*
* Если не передать идентификатор, то вернёт все значения
*
<<<<<<< HEAD
* $id Идентификатор
* $session Сессия
*
* @see hood\vk\traits\registry Модификация метода
=======
* @param int|null $id Идентификатор
* @param int|null $session Сессия
*
* @see mirzaev\vk\traits\registry Модификация метода
*
<<<<<<< HEAD:hood/vk/system/core.php
* @return mixed
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
* @return mixed Весь реестр, робота или сессию робота
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function read(int|null $id = null, int|null $session = null): mixed
{
@ -233,23 +155,12 @@ final class core
/**
* Удалить из реестра
*
<<<<<<< HEAD
* $id Идентификатор
* $session Сессия
*
* @see hood\vk\traits\registry Модификация метода
=======
* @param int|null $id Идентификатор
* @param int|null $session Сессия
*
<<<<<<< HEAD:hood/vk/system/core.php
* @see hood\vk\traits\registry Модификация метода
*
* @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
*
* @see mirzaev\vk\traits\registry Модификация метода
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function delete(int|null $id = null, int|null $session = null): void
{
@ -296,18 +207,10 @@ final class core
/**
* Записать свойство
*
<<<<<<< HEAD
* $name Название
* $value Значение
=======
* @param mixed $name Название
* @param mixed $value Значение
<<<<<<< HEAD:hood/vk/system/core.php
*
* @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function __set(mixed $name, mixed $value): void
{
@ -321,20 +224,12 @@ final class core
/**
* Прочитать свойство
<<<<<<< HEAD
*
*
* Значение по умолчанию, есле не задано
*
* $name Название
=======
*
* @param mixed $name Название
<<<<<<< HEAD:hood/vk/system/core.php
*
* @return mixed
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function __get(mixed $name): mixed
{
@ -354,18 +249,10 @@ final class core
* Ищет класс описывающий робота,
* создаёт и возвращает его объект
*
<<<<<<< HEAD
* $method Метод
* $params Параметры
=======
* @param string $method Метод
* @param array $params Параметры
<<<<<<< HEAD:hood/vk/system/core.php
*
* @return robot
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/
public function __call(string $method, array $params): robot
{

View File

@ -6,56 +6,15 @@ namespace mirzaev\vk\robots;
use Exception;
use GuzzleHttp\Client as browser;
<<<<<<< HEAD:hood/vk/system/robots/robot.php
<<<<<<< HEAD
use hood\vk\core,
hood\vk\api\methods\method,
hood\vk\proxies\proxy,
hood\vk\captcha\captcha;
use hood\accounts\vk as account;
/**
* Робот
*
* $id Идентификатор
* $session Сессия
* $key Ключ
* $version Версия API
* $account Аккаунт
* $browser Браузер
* $proxy Прокси
* $captcha Обработчик капчи
*
* $messages_mode Режим отправки сообщений
*
* public function __construct(int $id = null, float $version = null) Конструктор
* public function key(string $key) Инициализация ключа
* public function account(account $account) Инициализация аккаунта
* public function __set($name, $value) Запись свойства
* public function __get($name) Чтение свойства
* public function __isset($name) Проверка на инициализированность свойства
* public function __call(string $method, array $params) Вызов метода
* public static function __callStatic(string $method, array $params) Вызов статического метода
* public function __toString() Конвертация в строку
=======
use hood\vk\core;
use hood\vk\proxies\proxy;
use hood\vk\captcha\captcha;
use hood\vk\api\api;
use hood\vk\api\methods\method;
=======
use mirzaev\vk\core;
use mirzaev\vk\proxies\proxy;
use mirzaev\vk\captcha\captcha;
use mirzaev\vk\api\settings as api;
use mirzaev\vk\api\methods\method;
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
use mirzaev\accounts\vk as account;
use GuzzleHttp\Client as browser;
/**
* Робот
@ -80,406 +39,238 @@ use mirzaev\accounts\vk as account;
* @method public function __call(string $method, array $params) Вызов метода
* @method public static function __callStatic(string $method, array $params) Вызов статического метода
* @method public function __toString() Конвертация в строку
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*
* @package mirzaev\vk\robots
* @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
*/
abstract class robot
{
/**
<<<<<<< HEAD
* Идентификатор
*/
protected int $id;
/**
* Сессия
*/
protected int $session;
/**
* Сессия
=======
* @var int Сессия
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
protected int $session;
/**
* Аккаунт
*/
private account $account;
/**
<<<<<<< HEAD:hood/vk/system/robots/robot.php
<<<<<<< HEAD
* Ключ
=======
* @var string Ключ
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
protected string $key;
/**
* Прокси
*/
protected proxy $proxy;
/**
<<<<<<< HEAD
* Версия API
*/
protected float $version = 5.124;
/**
* Обработчик капчи
*/
protected captcha $captcha;
/**
* Аккаунт
=======
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
* @var string Аккаунт
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
private account $account;
/**
* $messages_mode Режим отправки сообщений
*/
protected int $messages_mode = 1;
/**
<<<<<<< HEAD
* Прокси
=======
* @var proxy Прокси
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
protected proxy $proxy;
/**
* Конструктор
*
* @param int|null $id Идентификатор
* @param string|null $key Ключ
*/
public function __construct(
protected int|null $id = null,
protected string|null $key = null
) {
// Инициализация ядра
$core = core::init();
/**
<<<<<<< HEAD
* Обработчик капчи
=======
* @var captcha Обработчик капчи
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
protected captcha $captcha;
// Идентификация робота
$this->id = $id ?? $core->robots + 1;
/**
<<<<<<< HEAD
* $messages_mode Режим отправки сообщений
*/
protected int $messages_mode = 1;
// Регистрация робота в ядре
$core->write($this->id, $this);
=======
* @var int Режим отправки сообщений
*/
protected int $messages_mode = 1;
// Идентификация сессии робота
$this->session = count($core->read($this->id));
}
/**
* @var api API ВКонтакте
*/
protected api $api;
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
/**
* Конструктор
*
<<<<<<< HEAD:hood/vk/system/robots/robot.php
<<<<<<< HEAD
* $id Идентификатор
* $version Версия API
*/
public function __construct(int|null $id = null, float|null $version = null)
{
=======
* @param int $id Идентификатор
=======
* @param int|null $id Идентификатор
* @param string|null $key Ключ
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
*/
public function __construct(
protected int|null $id = null,
protected string|null $key = null
) {
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
// Инициализация ядра
$core = core::init();
/**
* Инициализация ключа
*
* @param string $key Ключ
*
* @return self
*/
public function key(string $key): self
{
$this->__set('key', $key);
// Идентификация робота
$this->id = $id ?? $core->robots + 1;
return $this;
}
// Регистрация робота в ядре
$core->write($this->id, $this);
/**
* Инициализация аккаунта
*
* @param account $account Аккаунт
*
* @return self
*/
public function account(account $account): self
{
$this->__set('account', $account);
// Идентификация сессии робота
<<<<<<< HEAD:hood/vk/system/robots/robot.php
$this->session = count($core->get($this->id));
<<<<<<< HEAD
return $this;
}
if (isset($version)) {
// Инициализация версии
$this->version = $version;
}
=======
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
$this->session = count($core->read($this->id));
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
}
/**
* Инициализация прокси
*
* @param proxy $proxy Прокси
*
* @return self
*/
public function proxy(proxy $proxy): self
{
$this->__set('proxy', $proxy);
/**
* Инициализация ключа
*
<<<<<<< HEAD
* $key Ключ
=======
* @param string $key Ключ
*
* @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function key(string $key): self
{
$this->__set('key', $key);
return $this;
}
return $this;
}
/**
* Инициализация обработчика капчи
*
* @param captcha $captcha Обработчик капчи
*
* @return self
*/
public function captcha(captcha $captcha): self
{
$this->__set('captcha', $captcha);
/**
* Инициализация аккаунта
*
<<<<<<< HEAD
* $account Аккаунт
=======
* @param account $account Аккаунт
*
* @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function account(account $account): self
{
$this->__set('account', $account);
return $this;
}
return $this;
}
/**
* Записать свойство
*
* @param string $name Название
* @param mixed $value Значение
*
* @return void
*/
public function __set(string $name, mixed $value): void
{
match ($name) {
'id' => isset($this->id) ? throw new Exception('Запрещено перезаписывать идентификатор', 500) : $this->id = (int) $value,
'session' => isset($this->session) ? throw new Exception('Запрещено перезаписывать сессию', 500) : $this->session = (int) $value,
'key' => isset($this->key) ? throw new Exception('Запрещено перезаписывать ключ', 500) : $this->key = (string) $value,
'api' => isset($this->api) ? throw new Exception('Запрещено перезаписывать API', 500) : $this->api = $value,
'account' => isset($this->account) ? throw new Exception('Запрещено перезаписывать аккаунт', 500) : $this->account = $value,
'browser' => isset($this->browser) ? throw new Exception('Запрещено перезаписывать браузер', 500) : $this->browser = $value,
'proxy' => $this->proxy = $value,
'captcha' => $this->captcha = $value,
'messages_new' => $this->messages_new = (int) $value,
default => throw new Exception("Свойство $name не найдено", 404)
};
}
/**
* Инициализация прокси
*
<<<<<<< HEAD
* $proxy Прокси
=======
* @param proxy $proxy Прокси
*
* @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function proxy(proxy $proxy): self
{
$this->__set('proxy', $proxy);
/**
* Прочитать свойство
*
* @param string $name Название
*
* @return mixed
*/
public function __get(string $name): mixed
{
return match ($name) {
'id' => $this->id ?? throw new Exception('Идентификатор не инициализирован', 500),
'session' => $this->session ?? throw new Exception('Сессия не инициализирована', 500),
'key' => $this->key ?? throw new Exception('Ключ не инициализирован', 500),
'api' => $this->api ?? $this->api = new api($this),
'account' => $this->account ?? throw new Exception('Аккаунт не инициализирован', 500),
'browser' => $this->browser ?? $this->browser = new browser([
'base_uri' => 'https://api.vk.com/method/',
'cookies' => true
]),
'proxy' => $this->proxy,
'captcha' => $this->captcha,
'messages_new' => $this->messages_new,
default => throw new Exception("Свойство $name не найдено", 404)
};
}
return $this;
}
/**
* Проверить свойство на инициализированность
*
* @param string $name Название
*
* @return mixed
*/
public function __isset(string $name): bool
{
return match ($name) {
'id' => isset($this->id),
'session' => isset($this->session),
'key' => isset($this->key),
'account' => isset($this->account),
'api' => isset($this->api),
'browser' => isset($this->browser),
'proxy' => isset($this->proxy),
'captcha' => isset($this->captcha),
'messages_new' => isset($this->messages_new),
default => throw new Exception("Свойство $name не найдено", 404)
};
}
/**
* Инициализация обработчика капчи
*
<<<<<<< HEAD
* $captcha Обработчик капчи
=======
* @param captcha $captcha Обработчик капчи
*
* @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function captcha(captcha $captcha): self
{
$this->__set('captcha', $captcha);
/**
* Вызвать метод
*
* Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект
*
* @param string $method Метод
* @param array $params Параметры
*
* @return method
*/
public function __call(string $method, array $params): method
{
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
// Если найден класс реализующий запрошенный метод
return new $class($this, ...$params);
}
return $this;
}
throw new Exception("Метод $method не найден", 404);
}
/**
* Записать свойство
*
<<<<<<< HEAD
* $name Название
* $value Значение
=======
* @param string $name Название
* @param mixed $value Значение
*
* @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function __set(string $name, mixed $value): void
{
match ($name) {
<<<<<<< HEAD:hood/vk/system/robots/robot.php
'id' => !isset($this->id) ? $this->id = (int) $value : throw new Exception('Запрещено перезаписывать идентификатор'),
'session' => !isset($this->session) ? $this->session = (int) $value : throw new Exception('Запрещено перезаписывать сессию'),
'key' => !isset($this->key) ? $this->key = (string) $value : throw new Exception('Запрещено перезаписывать ключ'),
<<<<<<< HEAD
'version' => !isset($this->version) ? $this->version = (float) $value : throw new Exception('Запрещено перезаписывать версию API'),
=======
'api' => !isset($this->api) ? $this->api = $value : throw new Exception('Запрещено перезаписывать API'),
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
'account' => !isset($this->account) && $value instanceof account ? $this->account = $value : throw new Exception('Запрещено перезаписывать аккаунт'),
'browser' => !isset($this->browser) && $value instanceof browser ? $this->browser = $value : throw new Exception('Запрещено перезаписывать браузер'),
'proxy' => $this->proxy = $value,
'captcha' => $this->captcha = $value,
'messages_new' => $this->messages_new = (int) $value,
<<<<<<< HEAD
// Если свойство не найдено:
=======
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
default => throw new Exception('Свойство не найдено: ' . $name)
=======
'id' => isset($this->id) ? throw new Exception('Запрещено перезаписывать идентификатор', 500) : $this->id = (int) $value,
'session' => isset($this->session) ? throw new Exception('Запрещено перезаписывать сессию', 500) : $this->session = (int) $value,
'key' => isset($this->key) ? throw new Exception('Запрещено перезаписывать ключ', 500) : $this->key = (string) $value,
'api' => isset($this->api) ? throw new Exception('Запрещено перезаписывать API', 500) : $this->api = $value,
'account' => isset($this->account) ? throw new Exception('Запрещено перезаписывать аккаунт', 500) : $this->account = $value,
'browser' => isset($this->browser) ? throw new Exception('Запрещено перезаписывать браузер', 500) : $this->browser = $value,
'proxy' => $this->proxy = $value,
'captcha' => $this->captcha = $value,
'messages_new' => $this->messages_new = (int) $value,
default => throw new Exception("Свойство $name не найдено", 404)
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
};
}
/**
* Вызвать статический метод
*
* Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект
*
* @param string $method Метод
* @param array $params Параметры
*
* @return method
*/
public static function __callStatic(string $method, array $params): method
{
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
return $class(self, ...$params);
}
/**
* Прочитать свойство
*
<<<<<<< HEAD
* $name Название
*
* @return mixed
*/
public function __get(string $name)
{
return match ($name) {
'id' => isset($this->id) ? $this->id : throw new Exception('Идентификатор не инициализирован'),
'session' => isset($this->session) ? $this->session : throw new Exception('Сессия не инициализирована'),
'key' => isset($this->key) ? $this->key : throw new Exception('Ключ не инициализирован'),
'version' => isset($this->version) ? $this->version : throw new Exception('Версия не инициализирована'),
'account' => isset($this->account) ? $this->account : throw new Exception('Аккаунт не инициализирован'),
=======
* @param string $name Название
*
* @return mixed
*/
public function __get(string $name): mixed
{
return match ($name) {
'id' => $this->id ?? throw new Exception('Идентификатор не инициализирован', 500),
'session' => $this->session ?? throw new Exception('Сессия не инициализирована', 500),
'key' => $this->key ?? throw new Exception('Ключ не инициализирован', 500),
'api' => $this->api ?? $this->api = new api($this),
<<<<<<< HEAD:hood/vk/system/robots/robot.php
'account' => $this->account ?? throw new Exception('Аккаунт не инициализирован'),
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
'account' => $this->account ?? throw new Exception('Аккаунт не инициализирован', 500),
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
'browser' => $this->browser ?? $this->browser = new browser([
'base_uri' => 'https://api.vk.com/method/',
'cookies' => true
]),
'proxy' => $this->proxy,
'captcha' => $this->captcha,
'messages_new' => $this->messages_new,
<<<<<<< HEAD:hood/vk/system/robots/robot.php
<<<<<<< HEAD
// Если свойство не найдено:
=======
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
default => throw new Exception('Свойство не найдено: ' . $name)
=======
default => throw new Exception("Свойство $name не найдено", 404)
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/robots/robot.php
};
}
throw new Exception("Метод $method не найден", 404);
}
/**
* Проверить свойство на инициализированность
*
<<<<<<< HEAD
* $name Название
*
* @return mixed
*/
public function __isset(string $name)
=======
* @param string $name Название
*
* @return mixed
*/
public function __isset(string $name): bool
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
{
return match ($name) {
'id' => isset($this->id),
'session' => isset($this->session),
'key' => isset($this->key),
'account' => isset($this->account),
<<<<<<< HEAD
'version' => isset($this->version),
=======
'api' => isset($this->api),
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
'browser' => isset($this->browser),
'proxy' => isset($this->proxy),
'captcha' => isset($this->captcha),
'messages_new' => isset($this->messages_new),
default => throw new Exception("Свойство $name не найдено", 404)
};
}
/**
* Вызвать метод
*
* Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект
*
<<<<<<< HEAD
* $method Метод
* $params Параметры
=======
* @param string $method Метод
* @param array $params Параметры
*
* @return method
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function __call(string $method, array $params): method
{
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
// Если найден класс реализующий запрошенный метод
return new $class($this, ...$params);
}
throw new Exception("Метод $method не найден", 404);
}
/**
* Вызвать статический метод
*
* Ищет класс описывающий метод API ВКонтакте,
* создаёт и возвращает его объект
*
<<<<<<< HEAD
* $method Метод
* $params Параметры
=======
* @param string $method Метод
* @param array $params Параметры
*
* @return method
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public static function __callStatic(string $method, array $params): method
{
if (class_exists($class = '\\mirzaev\\vk\\api\\methods\\' . $method . 's')) {
return $class(self, ...$params);
}
throw new Exception("Метод $method не найден", 404);
}
/**
* Конвертировать в строку
<<<<<<< HEAD
=======
*
* @return string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/
public function __toString(): string
{
return (string) $this->id;
}
/**
* Конвертировать в строку
*
* @return string
*/
public function __toString(): string
{
return (string) $this->id;
}
}