1 | <?php |
||
27 | class NsCache |
||
28 | { |
||
29 | |||
30 | const FileName = '_ns.php'; |
||
31 | |||
32 | private $file = ''; |
||
33 | |||
34 | /** |
||
35 | * Addendum instance |
||
36 | * @var Addendum |
||
37 | */ |
||
38 | private $ad = null; |
||
39 | |||
40 | /** |
||
41 | * |
||
42 | * @var |
||
43 | */ |
||
44 | private static $nsCache = []; |
||
45 | |||
46 | /** |
||
47 | * Hash map of namespaces. |
||
48 | * Namespaces is key, while value is boolean and is not really relevant |
||
49 | * @var array |
||
50 | */ |
||
51 | private $namespaces; |
||
52 | |||
53 | /** |
||
54 | * Option holder |
||
55 | * @var MetaOptions |
||
56 | */ |
||
57 | private $options = null; |
||
58 | |||
59 | /** |
||
60 | * @internal Flag that will trigger cache validity check for namespaces cache |
||
61 | * But only if no options provided |
||
62 | * @var bool |
||
63 | */ |
||
64 | public static $addeNs = true; |
||
65 | |||
66 | 56 | public function __construct($path, Addendum $addendum, MetaOptions $options = null) |
|
73 | |||
74 | 56 | public function setOptions(MetaOptions $options = null) |
|
88 | |||
89 | 2 | public function valid() |
|
101 | |||
102 | 2 | public function get() |
|
103 | { |
||
104 | 2 | if (!empty(self::$nsCache[$this->file])) |
|
105 | 2 | { |
|
106 | 2 | return self::$nsCache[$this->file]; |
|
107 | } |
||
108 | self::$nsCache[$this->file] = SoftIncluder::includeFile($this->file); |
||
109 | return self::$nsCache[$this->file]; |
||
110 | } |
||
111 | |||
112 | 52 | public function set() |
|
113 | { |
||
114 | 52 | $ns = []; |
|
115 | 52 | foreach (array_keys($this->namespaces) as $name) |
|
116 | { |
||
117 | 52 | $ns[$name] = true; |
|
118 | 52 | } |
|
119 | 52 | $data = PhpExporter::export($ns); |
|
120 | 52 | $mask = umask(0); |
|
121 | 52 | file_put_contents($this->file, $data); |
|
122 | 52 | umask($mask); |
|
123 | 52 | self::$nsCache[$this->file] = $ns; |
|
124 | 52 | } |
|
125 | |||
126 | public function remove() |
||
134 | |||
135 | 2 | private function isValid($ns) |
|
167 | |||
168 | } |
||
169 |