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

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'; 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); $account = (new vk($id))->auth('login', 'password')->key($project_id);

View File

@ -171,15 +171,11 @@ final class longpoll
/** /**
* Получить события * Получить события
* *
<<<<<<< HEAD:hood/vk/system/api/longpoll.php
* $wait Время ожидания новых событий (в секундах)
=======
* @param int $wait Время ожидания новых событий (в секундах) * @param int $wait Время ожидания новых событий (в секундах)
* *
* @todo Проверка на ошибки запроса, включая на наличие доступа к лонгполл у ключа * @todo Проверка на ошибки запроса, включая на наличие доступа к лонгполл у ключа
* *
* @return array * @return array
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/longpoll.php
*/ */
public function get(int $wait = 25): array public function get(int $wait = 25): array
{ {
@ -188,15 +184,6 @@ final class longpoll
// Запрос на получение доступа и данных LongPoll-сервера // Запрос на получение доступа и данных LongPoll-сервера
$response = json_decode($this->robot->browser->request(method: 'POST', uri: 'groups.getLongPollServer', options: [ $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'] 'form_params' => $this->robot->api['settings']
])->getBody()->getContents()); ])->getBody()->getContents());
@ -208,7 +195,6 @@ final class longpoll
// Инициализация // Инициализация
$response = $response->response; $response = $response->response;
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/api/longpoll.php
// Ключ доступа // Ключ доступа
$this->key = $response->key; $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-read int $robots Количество роботов
* @property string $timezone Временная зона (журналирование) * @property string $timezone Временная зона (журналирование)
* @property array $path Пути (архитектура проекта) * @property array $path Пути (архитектура проекта)
@ -33,7 +22,6 @@ use Exception;
* @method public public function build() Сборщик * @method public public function build() Сборщик
* @method public function set($id, $value) Запись в реестр * @method public function set($id, $value) Запись в реестр
* @method public function get($id = null) Чтение из реестра * @method public function get($id = null) Чтение из реестра
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
* *
* @package mirzaev\vk * @package mirzaev\vk
* @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su> * @author Arsen Mirzaev Tatyano-Muradovich <red@hood.su>
@ -42,29 +30,13 @@ final class core
{ {
use singleton; use singleton;
<<<<<<< HEAD:hood/vk/system/core.php
<<<<<<< HEAD
/** /**
* Счётчик роботов * Счётчик роботов
=======
/**
=======
/**
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
* Счётчик роботов
*
* @var int
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private int $robots = 0; private int $robots = 0;
/** /**
* Реестр роботов * Реестр роботов
<<<<<<< HEAD
=======
*
* @var array
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private array $registry = []; private array $registry = [];
@ -72,60 +44,32 @@ final class core
* Временная зона * Временная зона
* *
* Используется в логировании * Используется в логировании
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private string $timezone; private string $timezone;
/** /**
* Путь до корня проекта * Путь до корня проекта
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private string $path_root; private string $path_root;
/** /**
* Путь до папки журналов * Путь до папки журналов
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private string $path_logs; private string $path_logs;
/** /**
* Путь до временной папки * Путь до временной папки
<<<<<<< HEAD
=======
*
* @var string
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
*/ */
private string $path_temp; private string $path_temp;
/** /**
* Запись в журнал * Запись в журнал
* *
<<<<<<< HEAD
* $file Файл для журналирования
=======
* @param string $file Файл для журналирования * @param string $file Файл для журналирования
* *
<<<<<<< HEAD:hood/vk/system/core.php
* @return self * @return self
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
* *
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
* @todo Добавить установку иного журналиста по спецификации PSR-3 * @todo Добавить установку иного журналиста по спецификации PSR-3
* @todo Более гибкое журналирование
*/ */
public function journal(string $file = null): self 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 int $id
* @param robot $robot * @param robot $robot
* *
<<<<<<< HEAD:hood/vk/system/core.php * @see mirzaev\vk\traits\registry Модификация метода
* @see hood\vk\traits\registry Модификация метода
* *
* @return void * @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
* @see mirzaev\vk\traits\registry Модификация метода
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function write(int $id, robot $robot): void 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 $id Идентификатор
* @param int|null $session Сессия * @param int|null $session Сессия
* *
* @see mirzaev\vk\traits\registry Модификация метода * @see mirzaev\vk\traits\registry Модификация метода
* *
<<<<<<< HEAD:hood/vk/system/core.php
* @return mixed
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
* @return mixed Весь реестр, робота или сессию робота * @return mixed Весь реестр, робота или сессию робота
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function read(int|null $id = null, int|null $session = null): mixed 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 $id Идентификатор
* @param int|null $session Сессия * @param int|null $session Сессия
* *
<<<<<<< HEAD:hood/vk/system/core.php
* @see hood\vk\traits\registry Модификация метода
*
* @return void * @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4 *
=======
* @see mirzaev\vk\traits\registry Модификация метода * @see mirzaev\vk\traits\registry Модификация метода
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function delete(int|null $id = null, int|null $session = null): void 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 $name Название
* @param mixed $value Значение * @param mixed $value Значение
<<<<<<< HEAD:hood/vk/system/core.php
* *
* @return void * @return void
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function __set(mixed $name, mixed $value): void public function __set(mixed $name, mixed $value): void
{ {
@ -321,20 +224,12 @@ final class core
/** /**
* Прочитать свойство * Прочитать свойство
<<<<<<< HEAD
* *
* Значение по умолчанию, есле не задано * Значение по умолчанию, есле не задано
*
* $name Название
=======
* *
* @param mixed $name Название * @param mixed $name Название
<<<<<<< HEAD:hood/vk/system/core.php
* *
* @return mixed * @return mixed
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function __get(mixed $name): mixed public function __get(mixed $name): mixed
{ {
@ -354,18 +249,10 @@ final class core
* Ищет класс описывающий робота, * Ищет класс описывающий робота,
* создаёт и возвращает его объект * создаёт и возвращает его объект
* *
<<<<<<< HEAD
* $method Метод
* $params Параметры
=======
* @param string $method Метод * @param string $method Метод
* @param array $params Параметры * @param array $params Параметры
<<<<<<< HEAD:hood/vk/system/core.php
* *
* @return robot * @return robot
>>>>>>> a45b5c327511a74d1fae5ab0e3a1dcc68e7dc3b4
=======
>>>>>>> 579e64b087c763b465464b5ee0d14b16a98d17b2:mirzaev/vk/system/core.php
*/ */
public function __call(string $method, array $params): robot public function __call(string $method, array $params): robot
{ {

View File

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