@@ -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 |
@@ -39,7 +39,8 @@ |
||
39 | 39 | */ |
40 | 40 | public function process(ViewSource $source, ContextInterface $context): ViewSource |
41 | 41 | { |
42 | - return $source->withCode(preg_replace_callback($this->pattern, function ($matches) use ($source, $context) { |
|
42 | + return $source->withCode(preg_replace_callback($this->pattern, function ($matches) use ($source, $context) |
|
43 | + { |
|
43 | 44 | return $context->resolveValue($matches[1]); |
44 | 45 | }, $source->getCode())); |
45 | 46 | } |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | array $namespaces, |
44 | 44 | FilesInterface $files = null, |
45 | 45 | string $defaultNamespace = self::DEFAULT_NAMESPACE |
46 | - ) { |
|
46 | + ){ |
|
47 | 47 | $this->namespaces = $namespaces; |
48 | 48 | $this->files = $files ?? new Files(); |
49 | 49 | $this->defaultNamespace = $defaultNamespace; |
@@ -65,7 +65,7 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function getExtension(): ?string |
67 | 67 | { |
68 | - if ($this->parser !== null) { |
|
68 | + if ($this->parser !== null){ |
|
69 | 69 | return $this->parser->getExtension(); |
70 | 70 | } |
71 | 71 | |
@@ -80,22 +80,22 @@ discard block |
||
80 | 80 | */ |
81 | 81 | public function exists(string $path, string &$filename = null, ViewPath &$parsed = null): bool |
82 | 82 | { |
83 | - if (empty($this->parser)) { |
|
83 | + if (empty($this->parser)){ |
|
84 | 84 | throw new LoaderException('Unable to locate view source, no extension has been associated.'); |
85 | 85 | } |
86 | 86 | |
87 | 87 | $parsed = $this->parser->parse($path); |
88 | - if (empty($parsed)) { |
|
88 | + if (empty($parsed)){ |
|
89 | 89 | return false; |
90 | 90 | } |
91 | 91 | |
92 | - if (!isset($this->namespaces[$parsed->getNamespace()])) { |
|
92 | + if (!isset($this->namespaces[$parsed->getNamespace()])){ |
|
93 | 93 | return false; |
94 | 94 | } |
95 | 95 | |
96 | - foreach ((array)$this->namespaces[$parsed->getNamespace()] as $directory) { |
|
96 | + foreach ((array)$this->namespaces[$parsed->getNamespace()] as $directory){ |
|
97 | 97 | $directory = $this->files->normalizePath($directory, true); |
98 | - if ($this->files->exists(sprintf('%s%s', $directory, $parsed->getBasename()))) { |
|
98 | + if ($this->files->exists(sprintf('%s%s', $directory, $parsed->getBasename()))){ |
|
99 | 99 | $filename = sprintf('%s%s', $directory, $parsed->getBasename()); |
100 | 100 | |
101 | 101 | return true; |
@@ -110,7 +110,7 @@ discard block |
||
110 | 110 | */ |
111 | 111 | public function load(string $path): ViewSource |
112 | 112 | { |
113 | - if (!$this->exists($path, $filename, $parsed)) { |
|
113 | + if (!$this->exists($path, $filename, $parsed)){ |
|
114 | 114 | throw new LoaderException("Unable to load view `$path`, file does not exists."); |
115 | 115 | } |
116 | 116 | |
@@ -123,21 +123,21 @@ discard block |
||
123 | 123 | */ |
124 | 124 | public function list(string $namespace = null): array |
125 | 125 | { |
126 | - if (empty($this->parser)) { |
|
126 | + if (empty($this->parser)){ |
|
127 | 127 | throw new LoaderException('Unable to list view sources, no extension has been associated.'); |
128 | 128 | } |
129 | 129 | |
130 | 130 | $result = []; |
131 | - foreach ($this->namespaces as $ns => $directories) { |
|
132 | - if (!empty($namespace) && $namespace != $ns) { |
|
131 | + foreach ($this->namespaces as $ns => $directories){ |
|
132 | + if (!empty($namespace) && $namespace != $ns){ |
|
133 | 133 | continue; |
134 | 134 | } |
135 | 135 | |
136 | - foreach ((array)$directories as $directory) { |
|
136 | + foreach ((array)$directories as $directory){ |
|
137 | 137 | $files = $this->files->getFiles($directory); |
138 | 138 | |
139 | - foreach ($files as $filename) { |
|
140 | - if (!$this->parser->match($filename)) { |
|
139 | + foreach ($files as $filename){ |
|
140 | + if (!$this->parser->match($filename)){ |
|
141 | 141 | // does not belong to this loader |
142 | 142 | continue; |
143 | 143 | } |
@@ -65,7 +65,8 @@ discard block |
||
65 | 65 | */ |
66 | 66 | public function getExtension(): ?string |
67 | 67 | { |
68 | - if ($this->parser !== null) { |
|
68 | + if ($this->parser !== null) |
|
69 | + { |
|
69 | 70 | return $this->parser->getExtension(); |
70 | 71 | } |
71 | 72 | |
@@ -80,22 +81,27 @@ discard block |
||
80 | 81 | */ |
81 | 82 | public function exists(string $path, string &$filename = null, ViewPath &$parsed = null): bool |
82 | 83 | { |
83 | - if (empty($this->parser)) { |
|
84 | + if (empty($this->parser)) |
|
85 | + { |
|
84 | 86 | throw new LoaderException('Unable to locate view source, no extension has been associated.'); |
85 | 87 | } |
86 | 88 | |
87 | 89 | $parsed = $this->parser->parse($path); |
88 | - if (empty($parsed)) { |
|
90 | + if (empty($parsed)) |
|
91 | + { |
|
89 | 92 | return false; |
90 | 93 | } |
91 | 94 | |
92 | - if (!isset($this->namespaces[$parsed->getNamespace()])) { |
|
95 | + if (!isset($this->namespaces[$parsed->getNamespace()])) |
|
96 | + { |
|
93 | 97 | return false; |
94 | 98 | } |
95 | 99 | |
96 | - foreach ((array)$this->namespaces[$parsed->getNamespace()] as $directory) { |
|
100 | + foreach ((array)$this->namespaces[$parsed->getNamespace()] as $directory) |
|
101 | + { |
|
97 | 102 | $directory = $this->files->normalizePath($directory, true); |
98 | - if ($this->files->exists(sprintf('%s%s', $directory, $parsed->getBasename()))) { |
|
103 | + if ($this->files->exists(sprintf('%s%s', $directory, $parsed->getBasename()))) |
|
104 | + { |
|
99 | 105 | $filename = sprintf('%s%s', $directory, $parsed->getBasename()); |
100 | 106 | |
101 | 107 | return true; |
@@ -110,7 +116,8 @@ discard block |
||
110 | 116 | */ |
111 | 117 | public function load(string $path): ViewSource |
112 | 118 | { |
113 | - if (!$this->exists($path, $filename, $parsed)) { |
|
119 | + if (!$this->exists($path, $filename, $parsed)) |
|
120 | + { |
|
114 | 121 | throw new LoaderException("Unable to load view `$path`, file does not exists."); |
115 | 122 | } |
116 | 123 | |
@@ -123,21 +130,27 @@ discard block |
||
123 | 130 | */ |
124 | 131 | public function list(string $namespace = null): array |
125 | 132 | { |
126 | - if (empty($this->parser)) { |
|
133 | + if (empty($this->parser)) |
|
134 | + { |
|
127 | 135 | throw new LoaderException('Unable to list view sources, no extension has been associated.'); |
128 | 136 | } |
129 | 137 | |
130 | 138 | $result = []; |
131 | - foreach ($this->namespaces as $ns => $directories) { |
|
132 | - if (!empty($namespace) && $namespace != $ns) { |
|
139 | + foreach ($this->namespaces as $ns => $directories) |
|
140 | + { |
|
141 | + if (!empty($namespace) && $namespace != $ns) |
|
142 | + { |
|
133 | 143 | continue; |
134 | 144 | } |
135 | 145 | |
136 | - foreach ((array)$directories as $directory) { |
|
146 | + foreach ((array)$directories as $directory) |
|
147 | + { |
|
137 | 148 | $files = $this->files->getFiles($directory); |
138 | 149 | |
139 | - foreach ($files as $filename) { |
|
140 | - if (!$this->parser->match($filename)) { |
|
150 | + foreach ($files as $filename) |
|
151 | + { |
|
152 | + if (!$this->parser->match($filename)) |
|
153 | + { |
|
141 | 154 | // does not belong to this loader |
142 | 155 | continue; |
143 | 156 | } |