mirror of
https://github.com/openvk/chandler.git
synced 2025-03-31 21:43:59 +03:00
parent
3ed115a9ed
commit
b457218e26
3 changed files with 73 additions and 14 deletions
29
composer.lock
generated
29
composer.lock
generated
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "0aa468953e3be7c5754eadbc5f3c6234",
|
"content-hash": "ec942d4b143e30d41b04837c5d8c09cf",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "doctrine/lexer",
|
"name": "doctrine/lexer",
|
||||||
|
@ -2130,16 +2130,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation",
|
"name": "symfony/translation",
|
||||||
"version": "v5.4.1",
|
"version": "v5.4.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/translation.git",
|
"url": "https://github.com/symfony/translation.git",
|
||||||
"reference": "8c82cd35ed861236138d5ae1c78c0c7ebcd62107"
|
"reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/translation/zipball/8c82cd35ed861236138d5ae1c78c0c7ebcd62107",
|
"url": "https://api.github.com/repos/symfony/translation/zipball/ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca",
|
||||||
"reference": "8c82cd35ed861236138d5ae1c78c0c7ebcd62107",
|
"reference": "ff8bb2107b6a549dc3c5dd9c498dcc82c9c098ca",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2207,7 +2207,7 @@
|
||||||
"description": "Provides tools to internationalize your application",
|
"description": "Provides tools to internationalize your application",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/translation/tree/v5.4.1"
|
"source": "https://github.com/symfony/translation/tree/v5.4.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2223,7 +2223,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-12-05T20:33:52+00:00"
|
"time": "2021-12-25T19:45:36+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/translation-contracts",
|
"name": "symfony/translation-contracts",
|
||||||
|
@ -2305,16 +2305,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/yaml",
|
"name": "symfony/yaml",
|
||||||
"version": "v5.4.0",
|
"version": "v5.4.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/symfony/yaml.git",
|
"url": "https://github.com/symfony/yaml.git",
|
||||||
"reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc"
|
"reference": "b9eb163846a61bb32dfc147f7859e274fab38b58"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc",
|
"url": "https://api.github.com/repos/symfony/yaml/zipball/b9eb163846a61bb32dfc147f7859e274fab38b58",
|
||||||
"reference": "034ccc0994f1ae3f7499fa5b1f2e75d5e7a94efc",
|
"reference": "b9eb163846a61bb32dfc147f7859e274fab38b58",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2360,7 +2360,7 @@
|
||||||
"description": "Loads and dumps YAML files",
|
"description": "Loads and dumps YAML files",
|
||||||
"homepage": "https://symfony.com",
|
"homepage": "https://symfony.com",
|
||||||
"support": {
|
"support": {
|
||||||
"source": "https://github.com/symfony/yaml/tree/v5.4.0"
|
"source": "https://github.com/symfony/yaml/tree/v5.4.2"
|
||||||
},
|
},
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
@ -2376,7 +2376,7 @@
|
||||||
"type": "tidelift"
|
"type": "tidelift"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"time": "2021-11-28T15:25:38+00:00"
|
"time": "2021-12-16T21:58:21+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tracy/tracy",
|
"name": "tracy/tracy",
|
||||||
|
@ -4510,7 +4510,8 @@
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
"prefer-lowest": false,
|
"prefer-lowest": false,
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "^7.3"
|
"ext-yaml": "*",
|
||||||
|
"php": "^7.4"
|
||||||
},
|
},
|
||||||
"platform-dev": [],
|
"platform-dev": [],
|
||||||
"plugin-api-version": "2.2.0"
|
"plugin-api-version": "2.2.0"
|
||||||
|
|
42
src/Classes/Singleton.php
Normal file
42
src/Classes/Singleton.php
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace Chandler\Classes;
|
||||||
|
|
||||||
|
use Chandler\Interfaces\Singleton as SingletonInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package Chandler\Classes
|
||||||
|
*/
|
||||||
|
abstract class Singleton implements SingletonInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private static array $instances = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Add a description.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
final private function __clone() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Add a description.
|
||||||
|
*/
|
||||||
|
abstract protected function __construct();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
|
public static function getInstance(): self
|
||||||
|
{
|
||||||
|
if (array_key_exists(static::class, self::$instances)) {
|
||||||
|
return self::$instances[static::class];
|
||||||
|
} else {
|
||||||
|
return self::$instances[static::class] = new static();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
16
src/Interfaces/Singleton.php
Normal file
16
src/Interfaces/Singleton.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace Chandler\Interfaces;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package Chandler\Interfaces
|
||||||
|
*/
|
||||||
|
interface Singleton
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
|
public static function getInstance(): self;
|
||||||
|
}
|
Loading…
Reference in a new issue