|
15 | 15 | use Contributte\Webpack\Manifest\ManifestLoader; |
16 | 16 | use Contributte\Webpack\Manifest\Mapper\WebpackManifestPluginMapper; |
17 | 17 | use Contributte\Webpack\PublicPathProvider; |
18 | | -use Nette\Bridges\ApplicationLatte\ILatteFactory; |
| 18 | +use Latte\Engine; |
| 19 | +use Nette\Bridges\ApplicationLatte\LatteFactory; |
19 | 20 | use Nette\DI\CompilerExtension; |
20 | 21 | use Nette\DI\Definitions\FactoryDefinition; |
21 | 22 | use Nette\DI\Definitions\ServiceDefinition; |
@@ -44,7 +45,7 @@ public function getConfigSchema(): Schema |
44 | 45 | { |
45 | 46 | return Expect::structure([ |
46 | 47 | 'debugger' => Expect::bool($this->debugMode), |
47 | | - 'macros' => Expect::bool(\interface_exists(ILatteFactory::class)), |
| 48 | + 'macros' => Expect::bool(\interface_exists(LatteFactory::class)), |
48 | 49 | 'devServer' => Expect::structure([ |
49 | 50 | 'enabled' => Expect::bool($this->debugMode), |
50 | 51 | 'url' => Expect::string()->nullable()->dynamic(), |
@@ -109,15 +110,20 @@ public function loadConfiguration(): void |
109 | 110 | // latte macro |
110 | 111 | if ($this->config['macros']) { |
111 | 112 | try { |
112 | | - $latteFactory = $builder->getDefinitionByType(ILatteFactory::class); |
| 113 | + $latteFactory = $builder->getDefinitionByType(LatteFactory::class); |
113 | 114 | \assert($latteFactory instanceof FactoryDefinition); |
114 | 115 |
|
115 | 116 | $definition = $latteFactory->getResultDefinition(); |
116 | 117 | \assert($definition instanceof ServiceDefinition); |
117 | 118 |
|
118 | | - $definition |
119 | | - ->addSetup('?->addProvider(?, ?)', ['@self', 'webpackAssetLocator', $assetLocator]) |
120 | | - ->addSetup('?->onCompile[] = function ($engine) { Contributte\Webpack\Latte\WebpackMacros::install($engine->getCompiler()); }', ['@self']); |
| 119 | + $definition->addSetup('?->addProvider(?, ?)', ['@self', 'webpackAssetLocator', $assetLocator]); |
| 120 | + |
| 121 | + // @phpstan-ignore-next-line latte 2 compatibility |
| 122 | + if (\version_compare(Engine::VERSION, '3', '<')) { |
| 123 | + $definition->addSetup('?->onCompile[] = function ($engine) { Contributte\Webpack\Latte\WebpackMacros::install($engine->getCompiler()); }', ['@self']); |
| 124 | + } else { |
| 125 | + $definition->addSetup('addExtension', [new Statement(\Contributte\Webpack\Latte\WebpackExtension::class)]); |
| 126 | + } |
121 | 127 | } catch (MissingServiceException $e) { |
122 | 128 | // ignore |
123 | 129 | } |
|
0 commit comments