@@ -130,8 +130,8 @@ |
||
130 | 130 | protected function getView(ContextInterface $context, string $path): ViewInterface |
131 | 131 | { |
132 | 132 | $loader = new ViewLoader([ |
133 | - 'default' => __DIR__ . '/fixtures/default', |
|
134 | - 'other' => __DIR__ . '/fixtures/other', |
|
133 | + 'default' => __DIR__.'/fixtures/default', |
|
134 | + 'other' => __DIR__.'/fixtures/other', |
|
135 | 135 | ]); |
136 | 136 | |
137 | 137 | $engine = new NativeEngine(new Container()); |
@@ -30,7 +30,7 @@ discard block |
||
30 | 30 | public function getID(): string |
31 | 31 | { |
32 | 32 | $calculated = ''; |
33 | - foreach ($this->dependencies as $dependency) { |
|
33 | + foreach ($this->dependencies as $dependency){ |
|
34 | 34 | $calculated .= "[{$dependency->getName()}={$dependency->getValue()}]"; |
35 | 35 | } |
36 | 36 | |
@@ -61,7 +61,7 @@ discard block |
||
61 | 61 | */ |
62 | 62 | public function resolveValue(string $dependency) |
63 | 63 | { |
64 | - if (!isset($this->dependencies[$dependency])) { |
|
64 | + if (!isset($this->dependencies[$dependency])){ |
|
65 | 65 | throw new ContextException("Undefined context dependency '{$dependency}'."); |
66 | 66 | } |
67 | 67 |
@@ -30,7 +30,8 @@ discard block |
||
30 | 30 | public function getID(): string |
31 | 31 | { |
32 | 32 | $calculated = ''; |
33 | - foreach ($this->dependencies as $dependency) { |
|
33 | + foreach ($this->dependencies as $dependency) |
|
34 | + { |
|
34 | 35 | $calculated .= "[{$dependency->getName()}={$dependency->getValue()}]"; |
35 | 36 | } |
36 | 37 | |
@@ -61,7 +62,8 @@ discard block |
||
61 | 62 | */ |
62 | 63 | public function resolveValue(string $dependency) |
63 | 64 | { |
64 | - if (!isset($this->dependencies[$dependency])) { |
|
65 | + if (!isset($this->dependencies[$dependency])) |
|
66 | + { |
|
65 | 67 | throw new ContextException("Undefined context dependency '{$dependency}'."); |
66 | 68 | } |
67 | 69 |
@@ -29,7 +29,7 @@ |
||
29 | 29 | */ |
30 | 30 | private function process(ViewSource $source, ContextInterface $context): ViewSource |
31 | 31 | { |
32 | - foreach ($this->processors as $processor) { |
|
32 | + foreach ($this->processors as $processor){ |
|
33 | 33 | $source = $processor->process($source, $context); |
34 | 34 | } |
35 | 35 |
@@ -29,7 +29,8 @@ |
||
29 | 29 | */ |
30 | 30 | private function process(ViewSource $source, ContextInterface $context): ViewSource |
31 | 31 | { |
32 | - foreach ($this->processors as $processor) { |
|
32 | + foreach ($this->processors as $processor) |
|
33 | + { |
|
33 | 34 | $source = $processor->process($source, $context); |
34 | 35 | } |
35 | 36 |
@@ -46,7 +46,7 @@ discard block |
||
46 | 46 | */ |
47 | 47 | public function getCacheDirectory(): string |
48 | 48 | { |
49 | - return rtrim($this->config['cache']['directory'], '/') . '/'; |
|
49 | + return rtrim($this->config['cache']['directory'], '/').'/'; |
|
50 | 50 | } |
51 | 51 | |
52 | 52 | /** |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | public function getDependencies(): array |
70 | 70 | { |
71 | 71 | $dependencies = []; |
72 | - foreach ($this->config['dependencies'] as $dependency) { |
|
72 | + foreach ($this->config['dependencies'] as $dependency){ |
|
73 | 73 | $dependencies[] = $this->wire($dependency); |
74 | 74 | } |
75 | 75 | |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | public function getEngines(): array |
87 | 87 | { |
88 | 88 | $engines = []; |
89 | - foreach ($this->config['engines'] as $engine) { |
|
89 | + foreach ($this->config['engines'] as $engine){ |
|
90 | 90 | $engines[] = $this->wire($engine); |
91 | 91 | } |
92 | 92 | |
@@ -101,11 +101,11 @@ discard block |
||
101 | 101 | */ |
102 | 102 | private function wire($item): Autowire |
103 | 103 | { |
104 | - if ($item instanceof Autowire) { |
|
104 | + if ($item instanceof Autowire){ |
|
105 | 105 | return $item; |
106 | 106 | } |
107 | 107 | |
108 | - if (is_string($item)) { |
|
108 | + if (is_string($item)){ |
|
109 | 109 | return new Autowire($item); |
110 | 110 | } |
111 | 111 |
@@ -69,7 +69,8 @@ discard block |
||
69 | 69 | public function getDependencies(): array |
70 | 70 | { |
71 | 71 | $dependencies = []; |
72 | - foreach ($this->config['dependencies'] as $dependency) { |
|
72 | + foreach ($this->config['dependencies'] as $dependency) |
|
73 | + { |
|
73 | 74 | $dependencies[] = $this->wire($dependency); |
74 | 75 | } |
75 | 76 | |
@@ -86,7 +87,8 @@ discard block |
||
86 | 87 | public function getEngines(): array |
87 | 88 | { |
88 | 89 | $engines = []; |
89 | - foreach ($this->config['engines'] as $engine) { |
|
90 | + foreach ($this->config['engines'] as $engine) |
|
91 | + { |
|
90 | 92 | $engines[] = $this->wire($engine); |
91 | 93 | } |
92 | 94 | |
@@ -101,11 +103,13 @@ discard block |
||
101 | 103 | */ |
102 | 104 | private function wire($item): Autowire |
103 | 105 | { |
104 | - if ($item instanceof Autowire) { |
|
106 | + if ($item instanceof Autowire) |
|
107 | + { |
|
105 | 108 | return $item; |
106 | 109 | } |
107 | 110 | |
108 | - if (is_string($item)) { |
|
111 | + if (is_string($item)) |
|
112 | + { |
|
109 | 113 | return new Autowire($item); |
110 | 114 | } |
111 | 115 |
@@ -52,22 +52,22 @@ |
||
52 | 52 | */ |
53 | 53 | private function rotate(ContextInterface $context, array $dependencies): array |
54 | 54 | { |
55 | - if (empty($dependencies)) { |
|
55 | + if (empty($dependencies)){ |
|
56 | 56 | return []; |
57 | 57 | } |
58 | 58 | |
59 | 59 | $top = array_shift($dependencies); |
60 | 60 | |
61 | 61 | $variants = []; |
62 | - foreach ($top->getVariants() as $value) { |
|
62 | + foreach ($top->getVariants() as $value){ |
|
63 | 63 | $variant = $context->withDependency(new ValueDependency($top->getName(), $value)); |
64 | 64 | |
65 | - if (empty($dependencies)) { |
|
65 | + if (empty($dependencies)){ |
|
66 | 66 | $variants[] = $variant; |
67 | 67 | continue; |
68 | 68 | } |
69 | 69 | |
70 | - foreach ($this->rotate($variant, $dependencies) as $inner) { |
|
70 | + foreach ($this->rotate($variant, $dependencies) as $inner){ |
|
71 | 71 | $variants[] = $inner; |
72 | 72 | } |
73 | 73 | } |
@@ -52,22 +52,26 @@ |
||
52 | 52 | */ |
53 | 53 | private function rotate(ContextInterface $context, array $dependencies): array |
54 | 54 | { |
55 | - if (empty($dependencies)) { |
|
55 | + if (empty($dependencies)) |
|
56 | + { |
|
56 | 57 | return []; |
57 | 58 | } |
58 | 59 | |
59 | 60 | $top = array_shift($dependencies); |
60 | 61 | |
61 | 62 | $variants = []; |
62 | - foreach ($top->getVariants() as $value) { |
|
63 | + foreach ($top->getVariants() as $value) |
|
64 | + { |
|
63 | 65 | $variant = $context->withDependency(new ValueDependency($top->getName(), $value)); |
64 | 66 | |
65 | - if (empty($dependencies)) { |
|
67 | + if (empty($dependencies)) |
|
68 | + { |
|
66 | 69 | $variants[] = $variant; |
67 | 70 | continue; |
68 | 71 | } |
69 | 72 | |
70 | - foreach ($this->rotate($variant, $dependencies) as $inner) { |
|
73 | + foreach ($this->rotate($variant, $dependencies) as $inner) |
|
74 | + { |
|
71 | 75 | $variants[] = $inner; |
72 | 76 | } |
73 | 77 | } |
@@ -44,7 +44,7 @@ |
||
44 | 44 | */ |
45 | 45 | public function getLoader(): LoaderInterface |
46 | 46 | { |
47 | - if (empty($this->loader)) { |
|
47 | + if (empty($this->loader)){ |
|
48 | 48 | throw new EngineException('No associated loader found'); |
49 | 49 | } |
50 | 50 |
@@ -44,7 +44,8 @@ |
||
44 | 44 | */ |
45 | 45 | public function getLoader(): LoaderInterface |
46 | 46 | { |
47 | - if (empty($this->loader)) { |
|
47 | + if (empty($this->loader)) |
|
48 | + { |
|
48 | 49 | throw new EngineException('No associated loader found'); |
49 | 50 | } |
50 | 51 |
@@ -49,21 +49,21 @@ |
||
49 | 49 | ob_start(); |
50 | 50 | $__outputLevel__ = ob_get_level(); |
51 | 51 | |
52 | - try { |
|
52 | + try{ |
|
53 | 53 | ContainerScope::runScope($this->container, function () use ($data): void { |
54 | 54 | extract($data, EXTR_OVERWRITE); |
55 | 55 | // render view in context and output buffer scope, context can be accessed using $this->context |
56 | 56 | require $this->view->getFilename(); |
57 | 57 | }); |
58 | - } catch (\Throwable $e) { |
|
59 | - while (ob_get_level() >= $__outputLevel__) { |
|
58 | + }catch (\Throwable $e){ |
|
59 | + while (ob_get_level() >= $__outputLevel__){ |
|
60 | 60 | ob_end_clean(); |
61 | 61 | } |
62 | 62 | |
63 | 63 | throw new RenderException($e); |
64 | - } finally { |
|
64 | + }finally{ |
|
65 | 65 | //Closing all nested buffers |
66 | - while (ob_get_level() > $__outputLevel__) { |
|
66 | + while (ob_get_level() > $__outputLevel__){ |
|
67 | 67 | ob_end_clean(); |
68 | 68 | } |
69 | 69 | } |
@@ -49,21 +49,28 @@ |
||
49 | 49 | ob_start(); |
50 | 50 | $__outputLevel__ = ob_get_level(); |
51 | 51 | |
52 | - try { |
|
52 | + try |
|
53 | + { |
|
53 | 54 | ContainerScope::runScope($this->container, function () use ($data): void { |
54 | 55 | extract($data, EXTR_OVERWRITE); |
55 | 56 | // render view in context and output buffer scope, context can be accessed using $this->context |
56 | 57 | require $this->view->getFilename(); |
57 | 58 | }); |
58 | - } catch (\Throwable $e) { |
|
59 | - while (ob_get_level() >= $__outputLevel__) { |
|
59 | + } |
|
60 | + catch (\Throwable $e) |
|
61 | + { |
|
62 | + while (ob_get_level() >= $__outputLevel__) |
|
63 | + { |
|
60 | 64 | ob_end_clean(); |
61 | 65 | } |
62 | 66 | |
63 | 67 | throw new RenderException($e); |
64 | - } finally { |
|
68 | + } |
|
69 | + finally |
|
70 | + { |
|
65 | 71 | //Closing all nested buffers |
66 | - while (ob_get_level() > $__outputLevel__) { |
|
72 | + while (ob_get_level() > $__outputLevel__) |
|
73 | + { |
|
67 | 74 | ob_end_clean(); |
68 | 75 | } |
69 | 76 | } |
@@ -23,7 +23,7 @@ discard block |
||
23 | 23 | */ |
24 | 24 | public function reset(ContextInterface $context = null): void |
25 | 25 | { |
26 | - if (empty($context)) { |
|
26 | + if (empty($context)){ |
|
27 | 27 | $this->cache = []; |
28 | 28 | return; |
29 | 29 | } |
@@ -38,7 +38,7 @@ discard block |
||
38 | 38 | */ |
39 | 39 | public function resetPath(string $path): void |
40 | 40 | { |
41 | - foreach ($this->cache as &$cache) { |
|
41 | + foreach ($this->cache as &$cache){ |
|
42 | 42 | unset($cache[$path], $cache); |
43 | 43 | } |
44 | 44 | } |
@@ -72,7 +72,7 @@ discard block |
||
72 | 72 | */ |
73 | 73 | public function get(ContextInterface $context, string $path): ViewInterface |
74 | 74 | { |
75 | - if (!$this->has($context, $path)) { |
|
75 | + if (!$this->has($context, $path)){ |
|
76 | 76 | throw new CacheException("No cache is available for {$path}."); |
77 | 77 | } |
78 | 78 |
@@ -23,7 +23,8 @@ discard block |
||
23 | 23 | */ |
24 | 24 | public function reset(ContextInterface $context = null): void |
25 | 25 | { |
26 | - if (empty($context)) { |
|
26 | + if (empty($context)) |
|
27 | + { |
|
27 | 28 | $this->cache = []; |
28 | 29 | return; |
29 | 30 | } |
@@ -38,7 +39,8 @@ discard block |
||
38 | 39 | */ |
39 | 40 | public function resetPath(string $path): void |
40 | 41 | { |
41 | - foreach ($this->cache as &$cache) { |
|
42 | + foreach ($this->cache as &$cache) |
|
43 | + { |
|
42 | 44 | unset($cache[$path], $cache); |
43 | 45 | } |
44 | 46 | } |
@@ -72,7 +74,8 @@ discard block |
||
72 | 74 | */ |
73 | 75 | public function get(ContextInterface $context, string $path): ViewInterface |
74 | 76 | { |
75 | - if (!$this->has($context, $path)) { |
|
77 | + if (!$this->has($context, $path)) |
|
78 | + { |
|
76 | 79 | throw new CacheException("No cache is available for {$path}."); |
77 | 80 | } |
78 | 81 |
@@ -75,21 +75,21 @@ discard block |
||
75 | 75 | ); |
76 | 76 | |
77 | 77 | $namespace = $this->defaultNamespace; |
78 | - if (strpos($filename, '.') === false) { |
|
78 | + if (strpos($filename, '.') === false){ |
|
79 | 79 | //Force default extension |
80 | - $filename .= '.' . $this->extension; |
|
81 | - } elseif (!$this->match($filename)) { |
|
80 | + $filename .= '.'.$this->extension; |
|
81 | + } elseif (!$this->match($filename)){ |
|
82 | 82 | return null; |
83 | 83 | } |
84 | 84 | |
85 | - if (strpos($filename, LoaderInterface::NS_SEPARATOR) !== false) { |
|
85 | + if (strpos($filename, LoaderInterface::NS_SEPARATOR) !== false){ |
|
86 | 86 | list($namespace, $filename) = explode(LoaderInterface::NS_SEPARATOR, $filename); |
87 | 87 | } |
88 | 88 | |
89 | 89 | //Twig like namespaces |
90 | - if (isset($filename[0]) && $filename[0] == '@') { |
|
90 | + if (isset($filename[0]) && $filename[0] == '@'){ |
|
91 | 91 | $separator = strpos($filename, '/'); |
92 | - if ($separator === false) { |
|
92 | + if ($separator === false){ |
|
93 | 93 | throw new PathException(sprintf('Malformed view path"%s" (expecting "@namespace/name").', $path)); |
94 | 94 | } |
95 | 95 | |
@@ -123,11 +123,11 @@ discard block |
||
123 | 123 | */ |
124 | 124 | private function validatePath(string $path): void |
125 | 125 | { |
126 | - if (empty($path)) { |
|
126 | + if (empty($path)){ |
|
127 | 127 | throw new PathException('A view path is empty'); |
128 | 128 | } |
129 | 129 | |
130 | - if (false !== strpos($path, "\0")) { |
|
130 | + if (false !== strpos($path, "\0")){ |
|
131 | 131 | throw new PathException('A view path cannot contain NUL bytes'); |
132 | 132 | } |
133 | 133 | |
@@ -135,14 +135,14 @@ discard block |
||
135 | 135 | $parts = explode('/', $path); |
136 | 136 | $level = 0; |
137 | 137 | |
138 | - foreach ($parts as $part) { |
|
139 | - if ('..' === $part) { |
|
138 | + foreach ($parts as $part){ |
|
139 | + if ('..' === $part){ |
|
140 | 140 | --$level; |
141 | - } elseif ('.' !== $part) { |
|
141 | + } elseif ('.' !== $part){ |
|
142 | 142 | ++$level; |
143 | 143 | } |
144 | 144 | |
145 | - if ($level < 0) { |
|
145 | + if ($level < 0){ |
|
146 | 146 | throw new PathException(sprintf( |
147 | 147 | 'Looks like you try to load a view outside configured directories (%s)', |
148 | 148 | $path |
@@ -75,21 +75,27 @@ discard block |
||
75 | 75 | ); |
76 | 76 | |
77 | 77 | $namespace = $this->defaultNamespace; |
78 | - if (strpos($filename, '.') === false) { |
|
78 | + if (strpos($filename, '.') === false) |
|
79 | + { |
|
79 | 80 | //Force default extension |
80 | 81 | $filename .= '.' . $this->extension; |
81 | - } elseif (!$this->match($filename)) { |
|
82 | + } |
|
83 | + elseif (!$this->match($filename)) |
|
84 | + { |
|
82 | 85 | return null; |
83 | 86 | } |
84 | 87 | |
85 | - if (strpos($filename, LoaderInterface::NS_SEPARATOR) !== false) { |
|
88 | + if (strpos($filename, LoaderInterface::NS_SEPARATOR) !== false) |
|
89 | + { |
|
86 | 90 | list($namespace, $filename) = explode(LoaderInterface::NS_SEPARATOR, $filename); |
87 | 91 | } |
88 | 92 | |
89 | 93 | //Twig like namespaces |
90 | - if (isset($filename[0]) && $filename[0] == '@') { |
|
94 | + if (isset($filename[0]) && $filename[0] == '@') |
|
95 | + { |
|
91 | 96 | $separator = strpos($filename, '/'); |
92 | - if ($separator === false) { |
|
97 | + if ($separator === false) |
|
98 | + { |
|
93 | 99 | throw new PathException(sprintf('Malformed view path"%s" (expecting "@namespace/name").', $path)); |
94 | 100 | } |
95 | 101 | |
@@ -123,11 +129,13 @@ discard block |
||
123 | 129 | */ |
124 | 130 | private function validatePath(string $path): void |
125 | 131 | { |
126 | - if (empty($path)) { |
|
132 | + if (empty($path)) |
|
133 | + { |
|
127 | 134 | throw new PathException('A view path is empty'); |
128 | 135 | } |
129 | 136 | |
130 | - if (false !== strpos($path, "\0")) { |
|
137 | + if (false !== strpos($path, "\0")) |
|
138 | + { |
|
131 | 139 | throw new PathException('A view path cannot contain NUL bytes'); |
132 | 140 | } |
133 | 141 | |
@@ -135,14 +143,19 @@ discard block |
||
135 | 143 | $parts = explode('/', $path); |
136 | 144 | $level = 0; |
137 | 145 | |
138 | - foreach ($parts as $part) { |
|
139 | - if ('..' === $part) { |
|
146 | + foreach ($parts as $part) |
|
147 | + { |
|
148 | + if ('..' === $part) |
|
149 | + { |
|
140 | 150 | --$level; |
141 | - } elseif ('.' !== $part) { |
|
151 | + } |
|
152 | + elseif ('.' !== $part) |
|
153 | + { |
|
142 | 154 | ++$level; |
143 | 155 | } |
144 | 156 | |
145 | - if ($level < 0) { |
|
157 | + if ($level < 0) |
|
158 | + { |
|
146 | 159 | throw new PathException(sprintf( |
147 | 160 | 'Looks like you try to load a view outside configured directories (%s)', |
148 | 161 | $path |