Vous êtes connecté en tant que anonymous Se Deconnecter
Browse code

Application modulaire fonctionnelle !

Emmanuel ROY authored on 12/08/2019 15:10:25
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,225 +0,0 @@
1
-<?php declare(strict_types=1);
2
-/**
3
- * Part of Windwalker project.
4
- *
5
- * @copyright  Copyright (C) 2019 LYRASOFT.
6
- * @license    LGPL-2.0-or-later
7
- */
8
-
9
-namespace Windwalker\Renderer;
10
-
11
-use Windwalker\Renderer\Twig\GlobalContainer;
12
-use Windwalker\Renderer\Twig\TwigFilesystemLoader;
13
-use Windwalker\Structure\Structure;
14
-
15
-/**
16
- * Class PhpRenderer
17
- *
18
- * @since 2.0
19
- */
20
-class TwigRenderer extends AbstractEngineRenderer
21
-{
22
-    /**
23
-     * Property twig.
24
-     *
25
-     * @var  \Twig_Environment
26
-     */
27
-    protected $engine = null;
28
-
29
-    /**
30
-     * Property loader.
31
-     *
32
-     * @var  \Twig_LoaderInterface
33
-     */
34
-    protected $loader = null;
35
-
36
-    /**
37
-     * Property extensions.
38
-     *
39
-     * @var  \Twig_ExtensionInterface[]
40
-     */
41
-    protected $extensions = [];
42
-
43
-    /**
44
-     * Property config.
45
-     *
46
-     * @var  Structure|array
47
-     */
48
-    protected $config = [];
49
-
50
-    /**
51
-     * Property debugExtension.
52
-     *
53
-     * @var  \Twig_Extension_Debug
54
-     */
55
-    protected $debugExtension = null;
56
-
57
-    /**
58
-     * render
59
-     *
60
-     * @param string       $file
61
-     * @param array|object $data
62
-     *
63
-     * @throws  \UnexpectedValueException
64
-     * @return  string
65
-     */
66
-    public function render($file, $data = [])
67
-    {
68
-        $file = pathinfo($file, PATHINFO_EXTENSION) === 'twig' ? $file : $file . '.twig';
69
-
70
-        $this->extensions = array_merge($this->extensions, (array) $this->config->get('extensions', []));
71
-
72
-        return $this->getEngine()->render($file, $data);
73
-    }
74
-
75
-    /**
76
-     * getLoader
77
-     *
78
-     * @return  \Twig_LoaderInterface
79
-     */
80
-    public function getLoader()
81
-    {
82
-        if (!$this->loader) {
83
-            if ($this->config->get('path_separator')) {
84
-                $this->loader = new TwigFilesystemLoader(
85
-                    iterator_to_array(clone $this->getPaths()),
86
-                    $this->config->get('path_separator')
87
-                );
88
-            } else {
89
-                $this->loader = new \Twig_Loader_Filesystem(iterator_to_array(clone $this->getPaths()));
90
-            }
91
-        }
92
-
93
-        return $this->loader;
94
-    }
95
-
96
-    /**
97
-     * setLoader
98
-     *
99
-     * @param   \Twig_LoaderInterface $loader
100
-     *
101
-     * @return  TwigRenderer  Return self to support chaining.
102
-     */
103
-    public function setLoader(\Twig_LoaderInterface $loader)
104
-    {
105
-        $this->loader = $loader;
106
-
107
-        return $this;
108
-    }
109
-
110
-    /**
111
-     * addExtension
112
-     *
113
-     * @param \Twig_ExtensionInterface $extension
114
-     *
115
-     * @return  static
116
-     */
117
-    public function addExtension(\Twig_ExtensionInterface $extension)
118
-    {
119
-        $this->extensions[] = $extension;
120
-
121
-        return $this;
122
-    }
123
-
124
-    /**
125
-     * getTwig
126
-     *
127
-     * @param bool $new
128
-     *
129
-     * @return  \Twig_Environment
130
-     */
131
-    public function getEngine($new = false)
132
-    {
133
-        if (!($this->engine instanceof \Twig_Environment) || $new) {
134
-            $this->engine = new \Twig_Environment($this->getLoader(), $this->config->toArray());
135
-
136
-            foreach (GlobalContainer::getExtensions() as $extension) {
137
-                $this->engine->addExtension(clone $extension);
138
-            }
139
-
140
-            foreach ($this->extensions as $extension) {
141
-                $this->engine->addExtension($extension);
142
-            }
143
-
144
-            foreach (GlobalContainer::getGlobals() as $name => $value) {
145
-                $this->engine->addGlobal($name, $value);
146
-            }
147
-
148
-            if ($this->config->get('debug')) {
149
-                $this->engine->addExtension($this->getDebugExtension());
150
-            }
151
-        }
152
-
153
-        return $this->engine;
154
-    }
155
-
156
-    /**
157
-     * setTwig
158
-     *
159
-     * @param   \Twig_Environment $twig
160
-     *
161
-     * @return  TwigRenderer  Return self to support chaining.
162
-     */
163
-    public function setEngine($twig)
164
-    {
165
-        if (!($twig instanceof \Twig_Environment)) {
166
-            throw new \InvalidArgumentException('Engine object should be Twig_environment');
167
-        }
168
-
169
-        $this->engine = $twig;
170
-
171
-        return $this;
172
-    }
173
-
174
-    /**
175
-     * Method to get property DebugExtension
176
-     *
177
-     * @return  \Twig_Extension_Debug
178
-     */
179
-    public function getDebugExtension()
180
-    {
181
-        if (!$this->debugExtension) {
182
-            $this->debugExtension = new \Twig_Extension_Debug();
183
-        }
184
-
185
-        return $this->debugExtension;
186
-    }
187
-
188
-    /**
189
-     * Method to set property debugExtension
190
-     *
191
-     * @param   \Twig_ExtensionInterface $debugExtension
192
-     *
193
-     * @return  static  Return self to support chaining.
194
-     */
195
-    public function setDebugExtension(\Twig_ExtensionInterface $debugExtension)
196
-    {
197
-        $this->debugExtension = $debugExtension;
198
-
199
-        return $this;
200
-    }
201
-
202
-    /**
203
-     * Method to get property Extensions
204
-     *
205
-     * @return  \Twig_ExtensionInterface[]
206
-     */
207
-    public function getExtensions()
208
-    {
209
-        return $this->extensions;
210
-    }
211
-
212
-    /**
213
-     * Method to set property extensions
214
-     *
215
-     * @param   \Twig_ExtensionInterface[] $extensions Twig extenions
216
-     *
217
-     * @return  static  Return self to support chaining.
218
-     */
219
-    public function setExtensions($extensions)
220
-    {
221
-        $this->extensions = $extensions;
222
-
223
-        return $this;
224
-    }
225
-}
Browse code

initial commit

Emmanuel ROY authored on 09/08/2019 08:39:02
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,225 @@
1
+<?php declare(strict_types=1);
2
+/**
3
+ * Part of Windwalker project.
4
+ *
5
+ * @copyright  Copyright (C) 2019 LYRASOFT.
6
+ * @license    LGPL-2.0-or-later
7
+ */
8
+
9
+namespace Windwalker\Renderer;
10
+
11
+use Windwalker\Renderer\Twig\GlobalContainer;
12
+use Windwalker\Renderer\Twig\TwigFilesystemLoader;
13
+use Windwalker\Structure\Structure;
14
+
15
+/**
16
+ * Class PhpRenderer
17
+ *
18
+ * @since 2.0
19
+ */
20
+class TwigRenderer extends AbstractEngineRenderer
21
+{
22
+    /**
23
+     * Property twig.
24
+     *
25
+     * @var  \Twig_Environment
26
+     */
27
+    protected $engine = null;
28
+
29
+    /**
30
+     * Property loader.
31
+     *
32
+     * @var  \Twig_LoaderInterface
33
+     */
34
+    protected $loader = null;
35
+
36
+    /**
37
+     * Property extensions.
38
+     *
39
+     * @var  \Twig_ExtensionInterface[]
40
+     */
41
+    protected $extensions = [];
42
+
43
+    /**
44
+     * Property config.
45
+     *
46
+     * @var  Structure|array
47
+     */
48
+    protected $config = [];
49
+
50
+    /**
51
+     * Property debugExtension.
52
+     *
53
+     * @var  \Twig_Extension_Debug
54
+     */
55
+    protected $debugExtension = null;
56
+
57
+    /**
58
+     * render
59
+     *
60
+     * @param string       $file
61
+     * @param array|object $data
62
+     *
63
+     * @throws  \UnexpectedValueException
64
+     * @return  string
65
+     */
66
+    public function render($file, $data = [])
67
+    {
68
+        $file = pathinfo($file, PATHINFO_EXTENSION) === 'twig' ? $file : $file . '.twig';
69
+
70
+        $this->extensions = array_merge($this->extensions, (array) $this->config->get('extensions', []));
71
+
72
+        return $this->getEngine()->render($file, $data);
73
+    }
74
+
75
+    /**
76
+     * getLoader
77
+     *
78
+     * @return  \Twig_LoaderInterface
79
+     */
80
+    public function getLoader()
81
+    {
82
+        if (!$this->loader) {
83
+            if ($this->config->get('path_separator')) {
84
+                $this->loader = new TwigFilesystemLoader(
85
+                    iterator_to_array(clone $this->getPaths()),
86
+                    $this->config->get('path_separator')
87
+                );
88
+            } else {
89
+                $this->loader = new \Twig_Loader_Filesystem(iterator_to_array(clone $this->getPaths()));
90
+            }
91
+        }
92
+
93
+        return $this->loader;
94
+    }
95
+
96
+    /**
97
+     * setLoader
98
+     *
99
+     * @param   \Twig_LoaderInterface $loader
100
+     *
101
+     * @return  TwigRenderer  Return self to support chaining.
102
+     */
103
+    public function setLoader(\Twig_LoaderInterface $loader)
104
+    {
105
+        $this->loader = $loader;
106
+
107
+        return $this;
108
+    }
109
+
110
+    /**
111
+     * addExtension
112
+     *
113
+     * @param \Twig_ExtensionInterface $extension
114
+     *
115
+     * @return  static
116
+     */
117
+    public function addExtension(\Twig_ExtensionInterface $extension)
118
+    {
119
+        $this->extensions[] = $extension;
120
+
121
+        return $this;
122
+    }
123
+
124
+    /**
125
+     * getTwig
126
+     *
127
+     * @param bool $new
128
+     *
129
+     * @return  \Twig_Environment
130
+     */
131
+    public function getEngine($new = false)
132
+    {
133
+        if (!($this->engine instanceof \Twig_Environment) || $new) {
134
+            $this->engine = new \Twig_Environment($this->getLoader(), $this->config->toArray());
135
+
136
+            foreach (GlobalContainer::getExtensions() as $extension) {
137
+                $this->engine->addExtension(clone $extension);
138
+            }
139
+
140
+            foreach ($this->extensions as $extension) {
141
+                $this->engine->addExtension($extension);
142
+            }
143
+
144
+            foreach (GlobalContainer::getGlobals() as $name => $value) {
145
+                $this->engine->addGlobal($name, $value);
146
+            }
147
+
148
+            if ($this->config->get('debug')) {
149
+                $this->engine->addExtension($this->getDebugExtension());
150
+            }
151
+        }
152
+
153
+        return $this->engine;
154
+    }
155
+
156
+    /**
157
+     * setTwig
158
+     *
159
+     * @param   \Twig_Environment $twig
160
+     *
161
+     * @return  TwigRenderer  Return self to support chaining.
162
+     */
163
+    public function setEngine($twig)
164
+    {
165
+        if (!($twig instanceof \Twig_Environment)) {
166
+            throw new \InvalidArgumentException('Engine object should be Twig_environment');
167
+        }
168
+
169
+        $this->engine = $twig;
170
+
171
+        return $this;
172
+    }
173
+
174
+    /**
175
+     * Method to get property DebugExtension
176
+     *
177
+     * @return  \Twig_Extension_Debug
178
+     */
179
+    public function getDebugExtension()
180
+    {
181
+        if (!$this->debugExtension) {
182
+            $this->debugExtension = new \Twig_Extension_Debug();
183
+        }
184
+
185
+        return $this->debugExtension;
186
+    }
187
+
188
+    /**
189
+     * Method to set property debugExtension
190
+     *
191
+     * @param   \Twig_ExtensionInterface $debugExtension
192
+     *
193
+     * @return  static  Return self to support chaining.
194
+     */
195
+    public function setDebugExtension(\Twig_ExtensionInterface $debugExtension)
196
+    {
197
+        $this->debugExtension = $debugExtension;
198
+
199
+        return $this;
200
+    }
201
+
202
+    /**
203
+     * Method to get property Extensions
204
+     *
205
+     * @return  \Twig_ExtensionInterface[]
206
+     */
207
+    public function getExtensions()
208
+    {
209
+        return $this->extensions;
210
+    }
211
+
212
+    /**
213
+     * Method to set property extensions
214
+     *
215
+     * @param   \Twig_ExtensionInterface[] $extensions Twig extenions
216
+     *
217
+     * @return  static  Return self to support chaining.
218
+     */
219
+    public function setExtensions($extensions)
220
+    {
221
+        $this->extensions = $extensions;
222
+
223
+        return $this;
224
+    }
225
+}