Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
MemoizeTrait
n/a
0 / 0
n/a
0 / 0
12
n/a
0 / 0
 isMemoizedStatic
n/a
0 / 0
n/a
0 / 0
1
 isMemoizedStaticForeign
n/a
0 / 0
n/a
0 / 0
1
 memoizeStatic
n/a
0 / 0
n/a
0 / 0
1
 memoizeStaticForeign
n/a
0 / 0
n/a
0 / 0
1
 unmemoizeStatic
n/a
0 / 0
n/a
0 / 0
1
 unmemoizeStaticForeign
n/a
0 / 0
n/a
0 / 0
1
 isMemoized
n/a
0 / 0
n/a
0 / 0
1
 isMemoizedForeign
n/a
0 / 0
n/a
0 / 0
1
 memoize
n/a
0 / 0
n/a
0 / 0
1
 memoizeForeign
n/a
0 / 0
n/a
0 / 0
1
 unmemoize
n/a
0 / 0
n/a
0 / 0
1
 unmemoizeForeign
n/a
0 / 0
n/a
0 / 0
1
1<?php
2
3namespace TonyBogdanov\Memoize\Traits;
4
5use TonyBogdanov\Memoize\Memoize;
6
7/**
8 * Trait MemoizeTrait
9 *
10 * @package TonyBogdanov\Memoize\Traits
11 *
12 * @codeCoverageIgnore
13 */
14trait MemoizeTrait {
15
16    /**
17     * @param string $key
18     * @return bool
19     */
20    protected static function isMemoizedStatic( string $key ): bool {
21        return Memoize::isMemoized( static::class, $key );
22    }
23
24    /**
25     * @param string $foreignClass
26     * @param string $key
27     * @return bool
28     */
29    protected static function isMemoizedStaticForeign( string $foreignClass, string $key ): bool {
30        return Memoize::isMemoized( $foreignClass, $key );
31    }
32
33    /**
34     * @param string $key
35     * @param callable $provider
36     * @return mixed
37     */
38    protected static function memoizeStatic( string $key, callable $provider ) {
39        return Memoize::memoize( static::class, $key, $provider );
40    }
41
42    /**
43     * @param string $foreignClass
44     * @param string $key
45     * @param callable $provider
46     * @return mixed
47     */
48    protected static function memoizeStaticForeign( string $foreignClass, string $key, callable $provider ) {
49        return Memoize::memoize( $foreignClass, $key, $provider );
50    }
51
52    /**
53     * @param string $key
54     * @return void
55     */
56    protected static function unmemoizeStatic( string $key ): void {
57        Memoize::unmemoize( static::class, $key );
58    }
59
60    /**
61     * @param string $foreignClass
62     * @param string $key
63     * @return void
64     */
65    protected static function unmemoizeStaticForeign( string $foreignClass, string $key ): void {
66        Memoize::unmemoize( $foreignClass, $key );
67    }
68
69    /**
70     * @param string $key
71     * @return bool
72     */
73    protected function isMemoized( string $key ): bool {
74        return Memoize::isMemoized( $this, $key );
75    }
76
77    /**
78     * @param object $foreignObject
79     * @param string $key
80     * @return bool
81     */
82    protected function isMemoizedForeign( object $foreignObject, string $key ): bool {
83        return Memoize::isMemoized( $foreignObject, $key );
84    }
85
86    /**
87     * @param string $key
88     * @param callable $provider
89     * @return mixed
90     */
91    protected function memoize( string $key, callable $provider ) {
92        return Memoize::memoize( $this, $key, $provider );
93    }
94
95    /**
96     * @param object $foreignObject
97     * @param string $key
98     * @param callable $provider
99     * @return mixed
100     */
101    protected function memoizeForeign( object $foreignObject, string $key, callable $provider ) {
102        return Memoize::memoize( $foreignObject, $key, $provider );
103    }
104
105    /**
106     * @param string|null $key
107     * @return $this
108     */
109    protected function unmemoize( string $key = null ): self {
110        Memoize::unmemoize( $this, $key );
111        return $this;
112    }
113
114    /**
115     * @param object $foreignObject
116     * @param string|null $key
117     * @return $this
118     */
119    protected function unmemoizeForeign( object $foreignObject, string $key = null ): self {
120        Memoize::unmemoize( $foreignObject, $key );
121        return $this;
122    }
123
124}