Началр работы с переработкой

This commit is contained in:
RedHood
2020-07-10 01:17:26 +10:00
parent 64e03a380b
commit 8635fbb301
50 changed files with 7855 additions and 2594 deletions

View File

@@ -0,0 +1,74 @@
<?php
declare(strict_types=1);
namespace VK\Traits;
/**
* Паттерн registry
*/
trait Registry
{
/**
* Хеш-таблица реестра
*
* @var array
*/
protected static array $registry = [];
/**
* Блокировка конструктора
*/
protected function __construct()
{
}
/**
* Положить в реестр
*
* @param string $key
* @param mixed $item
* @return void
*/
public static function set(int $key, $item): bool
{
if (!array_key_exists($key, self::$registry)) {
self::$registry[$key] = $item;
return true;
}
return false;
}
/**
* Получить из реестра по ключу
*
* Если не отправить ключ, то вернёт все значения
*
* @param string $key
* @return false|mixed
*/
public static function get(int $key = null)
{
if (isset($key) && array_key_exists($key, self::$registry)) {
return self::$registry[$key];
} else return self::$registry;
}
/**
* Удалить из реестра
*
* @param string $key
* @return void
*/
public static function remove(int $key): bool
{
if (array_key_exists($key, self::$registry)) {
unset(self::$registry[$key]);
return true;
}
return false;
}
}

View File

@@ -0,0 +1,57 @@
<?php
declare(strict_types=1);
namespace VK\Traits;
/**
* Паттерн singleton
*/
trait Singleton
{
/**
* Экземпляр класса
*
* @var LoggerAbstract
*/
protected static $instance;
/**
* Блокировка конструктора
*/
protected function __construct()
{
}
/**
* Инициализатор экземпляра класса
*
* @return LoggerAbstract
*/
public static function init(): self
{
if (self::$instance === null) self::$instance = new self;
return self::$instance;
}
/**
* Блокировка магического метода __clone()
*/
private function __clone()
{
}
/**
* Блокировка магического метода __sleep()
*/
private function __sleep()
{
}
/**
* Блокировка магического метода __wakeup()
*/
private function __wakeup()
{
}
}