Skip to content

Commit f29901b

Browse files
authored
fully use Latte 3's Extension (#40)
1 parent 5bc9319 commit f29901b

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

src/DI/WebpackExtension.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,9 @@ public function loadConfiguration(): void
116116
$definition = $latteFactory->getResultDefinition();
117117
\assert($definition instanceof ServiceDefinition);
118118

119-
$definition->addSetup('?->addProvider(?, ?)', ['@self', 'webpackAssetLocator', $assetLocator]);
120-
121119
// @phpstan-ignore-next-line latte 2 compatibility
122120
if (\version_compare(Engine::VERSION, '3', '<')) {
121+
$definition->addSetup('?->addProvider(?, ?)', ['@self', 'webpackAssetLocator', $assetLocator]);
123122
$definition->addSetup('?->onCompile[] = function ($engine) { Contributte\Webpack\Latte\WebpackMacros::install($engine->getCompiler()); }', ['@self']);
124123
} else {
125124
$definition->addSetup('addExtension', [new Statement(\Contributte\Webpack\Latte\WebpackExtension::class)]);

src/Latte/WebpackExtension.php

+15
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,29 @@
44

55
namespace Contributte\Webpack\Latte;
66

7+
use Contributte\Webpack\AssetLocator;
78
use Latte\Extension;
89

910
final class WebpackExtension extends Extension
1011
{
12+
private AssetLocator $assetLocator;
13+
14+
public function __construct(AssetLocator $assetLocator)
15+
{
16+
$this->assetLocator = $assetLocator;
17+
}
18+
1119
public function getTags(): array
1220
{
1321
return [
1422
'webpack' => [WebpackNode::class, 'create'],
1523
];
1624
}
25+
26+
public function getProviders(): array
27+
{
28+
return [
29+
'webpackAssetLocator' => $this->assetLocator,
30+
];
31+
}
1732
}

tests/Latte/WebpackExtensionTest.phpt

+1-2
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ final class WebpackExtensionTest extends TestCase
3838
);
3939

4040
$latte = new Engine();
41-
$latte->addProvider('webpackAssetLocator', $assetLocator);
42-
$latte->addExtension(new WebpackExtension());
41+
$latte->addExtension(new WebpackExtension($assetLocator));
4342

4443
$latte->setLoader(new StringLoader());
4544
Assert::same('/dist/asset.js', $latte->renderToString('{webpack asset.js}'));

0 commit comments

Comments
 (0)