This repository was archived by the owner on Jan 24, 2024. It is now read-only.
File tree 3 files changed +27
-7
lines changed
3 files changed +27
-7
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ class NavigationBootloader extends Bootloader
29
29
*/
30
30
public function defaultNavigation (Navigation $ navigation , DefaultRenderer $ renderer )
31
31
{
32
- $ navigation ->setRenderer ($ renderer );
32
+ $ navigation ->withRenderer ($ renderer );
33
33
34
34
return $ navigation ;
35
35
}
Original file line number Diff line number Diff line change 2
2
3
3
namespace Spiral \NavigationBuilder \Builders ;
4
4
5
+ use Spiral \NavigationBuilder \Database \Sources \TreeSource ;
6
+ use Spiral \NavigationBuilder \DefaultRenderer ;
5
7
use Spiral \NavigationBuilder \RendererInterface ;
6
8
7
9
class HtmlBuilder extends StructureBuilder
@@ -10,13 +12,30 @@ class HtmlBuilder extends StructureBuilder
10
12
private $ renderer ;
11
13
12
14
/**
13
- * @param RendererInterface $renderer
15
+ * HtmlBuilder constructor.
16
+ *
17
+ * @param TreeSource $source
18
+ * @param DefaultRenderer $renderer
14
19
*/
15
- public function setRenderer ( RendererInterface $ renderer )
20
+ public function __construct ( TreeSource $ source , DefaultRenderer $ renderer )
16
21
{
22
+ parent ::__construct ($ source );
23
+
17
24
$ this ->renderer = $ renderer ;
18
25
}
19
26
27
+ /**
28
+ * @param RendererInterface $renderer
29
+ * @return HtmlBuilder
30
+ */
31
+ public function withRenderer (RendererInterface $ renderer ): HtmlBuilder
32
+ {
33
+ $ builder = clone $ this ;
34
+ $ builder ->renderer = $ renderer ;
35
+
36
+ return $ builder ;
37
+ }
38
+
20
39
/**
21
40
* @param string $domain
22
41
* @return string
Original file line number Diff line number Diff line change @@ -49,23 +49,24 @@ public function __construct(
49
49
RendererInterface $ renderer ,
50
50
Storage $ storage
51
51
) {
52
+ $ htmlBuilder = $ htmlBuilder ->withRenderer ($ renderer );
53
+
52
54
$ this ->treeBuilder = $ treeBuilder ;
53
55
$ this ->htmlBuilder = $ htmlBuilder ;
54
56
$ this ->structureBuilder = $ structureBuilder ;
55
57
$ this ->storage = $ storage ;
56
-
57
- $ this ->setRenderer ($ renderer );
58
+ $ this ->renderer = $ renderer ;
58
59
}
59
60
60
61
/**
61
62
* @param RendererInterface $renderer
62
63
* @return Navigation
63
64
*/
64
- public function setRenderer (RendererInterface $ renderer ): Navigation
65
+ public function withRenderer (RendererInterface $ renderer ): Navigation
65
66
{
66
67
$ navigation = clone $ this ;
67
68
$ navigation ->renderer = $ renderer ;
68
- $ navigation ->htmlBuilder -> setRenderer ($ renderer );
69
+ $ navigation ->htmlBuilder = $ navigation -> htmlBuilder -> withRenderer ($ renderer );
69
70
70
71
return $ navigation ;
71
72
}
You can’t perform that action at this time.
0 commit comments