2020-07-09 22:17:26 +07:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
namespace VK;
|
|
|
|
|
|
2020-09-17 19:27:12 +07:00
|
|
|
|
use \VK\Loggers\Jasmo;
|
|
|
|
|
use \VK\Traits\Singleton;
|
|
|
|
|
use \VK\Traits\Registry;
|
2020-07-09 22:17:26 +07:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Ядро фреймворка для работы с VK API
|
|
|
|
|
*
|
|
|
|
|
* @package VK
|
2020-09-17 19:27:12 +07:00
|
|
|
|
*
|
|
|
|
|
* @property int robots Количество роботов
|
|
|
|
|
*
|
|
|
|
|
* @method build(...$params) Инициализация сборщика
|
|
|
|
|
*
|
2020-07-09 22:17:26 +07:00
|
|
|
|
* @author Arsen Mirzaev
|
|
|
|
|
*/
|
|
|
|
|
class Core
|
|
|
|
|
{
|
|
|
|
|
use Singleton, Registry {
|
|
|
|
|
Singleton::__construct insteadof Registry;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2020-09-17 19:27:12 +07:00
|
|
|
|
* Количество роботов
|
|
|
|
|
*
|
|
|
|
|
* Хранит экземпляры роботов по их идентификаторам
|
|
|
|
|
*
|
|
|
|
|
* @var int
|
|
|
|
|
*/
|
|
|
|
|
public static int $robots = 0;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Временная зона
|
|
|
|
|
*
|
|
|
|
|
* Используется в логировании
|
|
|
|
|
*
|
|
|
|
|
* @var string
|
|
|
|
|
*/
|
|
|
|
|
public static string $timezone = 'Europe/Moscow';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Пути
|
|
|
|
|
*
|
|
|
|
|
* Архитектура проекта
|
|
|
|
|
*
|
|
|
|
|
* @var array
|
2020-07-09 22:17:26 +07:00
|
|
|
|
*/
|
2020-09-17 19:27:12 +07:00
|
|
|
|
public static array $path = [
|
|
|
|
|
'root' => '',
|
|
|
|
|
'log' => ''
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
protected function __construct() {
|
|
|
|
|
self::$path = [
|
|
|
|
|
'root' => dirname(__DIR__) . '..',
|
|
|
|
|
'log' => self::$path['root'] . '/log'
|
|
|
|
|
];
|
|
|
|
|
}
|
2020-07-09 22:17:26 +07:00
|
|
|
|
|
|
|
|
|
/**
|
2020-09-17 19:27:12 +07:00
|
|
|
|
* Инициализация сборщика
|
2020-07-09 22:17:26 +07:00
|
|
|
|
*
|
|
|
|
|
* @return Builder
|
|
|
|
|
*/
|
2020-09-17 19:27:12 +07:00
|
|
|
|
public function build(): Builder
|
2020-07-09 22:17:26 +07:00
|
|
|
|
{
|
2020-09-17 19:27:12 +07:00
|
|
|
|
return new Builder();
|
2020-07-09 22:17:26 +07:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2020-09-17 19:27:12 +07:00
|
|
|
|
* Активация журналирования
|
2020-07-09 22:17:26 +07:00
|
|
|
|
*
|
|
|
|
|
* @return Core
|
2020-09-17 19:27:12 +07:00
|
|
|
|
*
|
|
|
|
|
* @todo Добавить установку иного журналиста по спецификации PSR-3
|
2020-07-09 22:17:26 +07:00
|
|
|
|
*/
|
|
|
|
|
public function log($file = null): Core
|
|
|
|
|
{
|
|
|
|
|
Jasmo::init()::post($file)::postErrorHandler()::postShutdownHandler();
|
|
|
|
|
|
|
|
|
|
return $this;
|
|
|
|
|
}
|
|
|
|
|
}
|