File tree Expand file tree Collapse file tree 3 files changed +46
-0
lines changed
packages/view/src/Initializers Expand file tree Collapse file tree 3 files changed +46
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \View \Initializers ;
4+
5+ use Tempest \Container \Container ;
6+ use Tempest \Container \Initializer ;
7+ use Tempest \Container \Singleton ;
8+ use Tempest \Core \Kernel ;
9+ use Tempest \View \Attributes \AttributeFactory ;
10+ use Tempest \View \Elements \ElementFactory ;
11+ use Tempest \View \Parser \TempestViewCompiler ;
12+
13+ final readonly class TempestViewCompilerInitializer implements Initializer
14+ {
15+ #[Singleton]
16+ public function initialize (Container $ container ): TempestViewCompiler
17+ {
18+ return new TempestViewCompiler (
19+ elementFactory: $ container ->get (ElementFactory::class),
20+ attributeFactory: $ container ->get (AttributeFactory::class),
21+ discoveryLocations: $ container ->get (Kernel::class)->discoveryLocations ,
22+ );
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ <div >Hi </div >
Original file line number Diff line number Diff line change 44
55namespace Tests \Tempest \Integration \View ;
66
7+ use Tempest \Core \Kernel ;
8+ use Tempest \Discovery \DiscoveryLocation ;
79use Tempest \Support \Html \HtmlString ;
810use Tempest \View \Exceptions \ElementWasInvalid ;
11+ use Tempest \View \Renderers \TempestViewRenderer ;
912use Tempest \View \ViewCache ;
1013use Tests \Tempest \Fixtures \Controllers \RelativeViewController ;
1114use Tests \Tempest \Integration \FrameworkIntegrationTestCase ;
@@ -865,4 +868,22 @@ public function test_zero_in_attribute(): void
865868
866869 $ this ->assertSnippetsMatch ('<table border="0"></table> ' , $ html );
867870 }
871+
872+ public function test_discovery_locations_are_passed_to_compiler (): void
873+ {
874+ /** @var \Tempest\Core\Kernel $kernel */
875+ $ kernel = $ this ->get (Kernel::class);
876+
877+ $ kernel ->discoveryLocations [] = new DiscoveryLocation (
878+ 'Tests\Tempest\Integration\View\Fixtures ' ,
879+ __DIR__ . '/Fixtures ' ,
880+ );
881+
882+ /** @var TempestViewRenderer $renderer */
883+ $ renderer = $ this ->get (TempestViewRenderer::class);
884+
885+ $ html = $ renderer ->render (view ('discovered-view.view.php ' ));
886+
887+ $ this ->assertSnippetsMatch ('<div>Hi</div> ' , $ html );
888+ }
868889}
You can’t perform that action at this time.
0 commit comments