Skip to content

Commit e8c65f7

Browse files
committed
upsome
1 parent 4bd11af commit e8c65f7

File tree

6 files changed

+63
-50
lines changed

6 files changed

+63
-50
lines changed

src/Obj.php

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
namespace Toolkit\Stdlib;
1111

12-
use ArrayAccess;
1312
use Toolkit\Stdlib\Obj\ObjectHelper;
13+
use Toolkit\Stdlib\Obj\Traits\CreateSingletonTrait;
1414
use Toolkit\Stdlib\Obj\Traits\ObjectPoolTrait;
1515

1616
/**
@@ -21,48 +21,5 @@
2121
*/
2222
class Obj extends ObjectHelper
2323
{
24-
use ObjectPoolTrait;
25-
26-
/**
27-
* @var array
28-
*/
29-
private static $singletons = [];
30-
31-
/**
32-
* @param string $class
33-
*
34-
* @return mixed
35-
*/
36-
public static function singleton(string $class)
37-
{
38-
if (!isset(self::$singletons[$class])) {
39-
self::$singletons[$class] = new $class;
40-
}
41-
42-
return self::$singletons[$class];
43-
}
44-
45-
/**
46-
* @param string $class
47-
*
48-
* @return mixed
49-
*/
50-
public static function factory(string $class)
51-
{
52-
if (!isset(self::$singletons[$class])) {
53-
self::$singletons[$class] = new $class;
54-
}
55-
56-
return clone self::$singletons[$class];
57-
}
58-
59-
/**
60-
* @param $object
61-
*
62-
* @return bool
63-
*/
64-
public static function isArrayable($object): bool
65-
{
66-
return $object instanceof ArrayAccess || method_exists($object, 'toArray');
67-
}
24+
use ObjectPoolTrait, CreateSingletonTrait;
6825
}

src/Obj/Configurable.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*
1717
* @package Toolkit\Stdlib\Obj
1818
*/
19-
class Configurable
19+
abstract class Configurable
2020
{
2121
use PropertyAccessByGetterSetterTrait;
2222

@@ -28,7 +28,7 @@ class Configurable
2828
public function __construct(array $config = [])
2929
{
3030
if ($config) {
31-
Obj::init($this, $config);
31+
ObjectHelper::init($this, $config);
3232
}
3333

3434
$this->init();

src/Obj/ObjectHelper.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
namespace Toolkit\Stdlib\Obj;
1111

12+
use ArrayAccess;
1213
use Closure;
1314
use ReflectionClass;
1415
use ReflectionException;
@@ -156,6 +157,16 @@ public static function toArray($data, bool $recursive = false)
156157
return $arr;
157158
}
158159

160+
/**
161+
* @param object $object
162+
*
163+
* @return bool
164+
*/
165+
public static function isArrayable($object): bool
166+
{
167+
return $object instanceof ArrayAccess || method_exists($object, 'toArray');
168+
}
169+
159170
/**
160171
* @param mixed $object
161172
* @param bool $unique
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php declare(strict_types=1);
2+
3+
namespace Toolkit\Stdlib\Obj\Traits;
4+
5+
/**
6+
* Trait CreateSingletonTrait
7+
*
8+
* @package Toolkit\Stdlib\Obj\Traits
9+
*/
10+
trait CreateSingletonTrait
11+
{
12+
/**
13+
* @var array
14+
*/
15+
private static $singletons = [];
16+
17+
/**
18+
* @param string $class
19+
*
20+
* @return mixed
21+
*/
22+
public static function singleton(string $class)
23+
{
24+
if (!isset(self::$singletons[$class])) {
25+
self::$singletons[$class] = new $class;
26+
}
27+
28+
return self::$singletons[$class];
29+
}
30+
31+
/**
32+
* @param string $class
33+
*
34+
* @return mixed
35+
*/
36+
public static function factory(string $class)
37+
{
38+
if (!isset(self::$singletons[$class])) {
39+
self::$singletons[$class] = new $class;
40+
}
41+
42+
return clone self::$singletons[$class];
43+
}
44+
45+
}

src/Obj/Traits/SingletonTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Toolkit\Stdlib\Obj\Traits;
1111

12-
use Toolkit\Stdlib\Obj\Obj;
12+
use Toolkit\Stdlib\Obj;
1313

1414
/**
1515
* Trait SingletonTrait
@@ -21,7 +21,7 @@ trait SingletonTrait
2121
/**
2222
* @return mixed
2323
*/
24-
public static function own()
24+
public static function new()
2525
{
2626
return Obj::singleton(static::class);
2727
}

src/Obj/Traits/StdObjectTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
namespace Toolkit\Stdlib\Obj\Traits;
1111

1212
use InvalidArgumentException;
13-
use Toolkit\Stdlib\Obj\Obj;
13+
use Toolkit\Stdlib\Obj;
1414
use function basename;
1515
use function call_user_func_array;
1616
use function dirname;

0 commit comments

Comments
 (0)