vk/system/Core.php

89 lines
1.8 KiB
PHP
Raw Normal View History

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