Skip to content

Commit 0538b5e

Browse files
mabarMilan Felix Šulc
authored andcommitted
Nette 3
1 parent 6930dfb commit 0538b5e

File tree

4 files changed

+43
-33
lines changed

4 files changed

+43
-33
lines changed

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ Extra contribution to [`nette/latte`](https://github.com/nette/latte).
2424

2525
## Versions
2626

27-
| State | Version | Branch | PHP |
28-
|-------------|---------|----------|----------|
29-
| dev | `^0.4` | `master` | `>= 7.1` |
30-
| stable | `^0.3` | `master` | `>= 7.1` |
31-
| stable | `^0.2` | `master` | `>= 5.6` |
27+
| State | Version | Branch | Nette | PHP |
28+
|-------------|---------|----------|-------|---------|
29+
| dev | `^0.5` | `master` | 3.0+ | `^7.2` |
30+
| stable | `^0.4` | `master` | 3.0+ | `^7.2` |
31+
| stable | `^0.3` | `master` | 2.4 | `>=7.1` |
32+
| stable | `^0.2` | `master` | 2.4 | `>=5.6` |
3233

3334
## Maintainers
3435

composer.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
}
1717
],
1818
"require": {
19-
"php": ">= 7.1",
20-
"latte/latte": "~2.4.4 || ~2.5.1"
19+
"php": "^7.2",
20+
"latte/latte": "~2.5.1"
2121
},
2222
"require-dev": {
23-
"nette/application": "~2.4.6",
24-
"nette/di": "~2.4.12",
23+
"nette/application": "~3.0.0",
24+
"nette/di": "~3.0.0",
2525
"ninjify/nunjuck": "^0.2.0",
2626
"ninjify/qa": "^0.8.0",
2727
"phpstan/extension-installer": "^1.0",
@@ -31,7 +31,7 @@
3131
"phpstan/phpstan-strict-rules": "^0.11"
3232
},
3333
"conflict": {
34-
"nette/utils": "<2.5.2"
34+
"nette/di": "<3.0.0"
3535
},
3636
"suggest": {
3737
"nette/di": "to use VersionExtension[CompilerExtension]"
@@ -53,7 +53,7 @@
5353
},
5454
"extra": {
5555
"branch-alias": {
56-
"dev-master": "0.4.x-dev"
56+
"dev-master": "0.5.x-dev"
5757
}
5858
}
5959
}

src/DI/FiltersExtension.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,11 @@
66
use Contributte\Latte\Filters\FiltersProvider;
77
use Nette\Bridges\ApplicationLatte\ILatteFactory;
88
use Nette\DI\CompilerExtension;
9+
use Nette\DI\Definitions\FactoryDefinition;
910

1011
class FiltersExtension extends CompilerExtension
1112
{
1213

13-
/**
14-
* Decorate services
15-
*/
1614
public function beforeCompile(): void
1715
{
1816
$builder = $this->getContainerBuilder();
@@ -22,10 +20,11 @@ public function beforeCompile(): void
2220
}
2321

2422
$latte = $builder->getDefinitionByType(ILatteFactory::class);
23+
assert($latte instanceof FactoryDefinition);
2524
$filters = $builder->findByType(FiltersProvider::class);
2625

2726
foreach ($filters as $definition) {
28-
$latte->addSetup(
27+
$latte->getResultDefinition()->addSetup(
2928
'foreach (?->getFilters() as $name => $callback) {
3029
?->addFilter($name, $callback);
3130
}',

src/DI/VersionExtension.php

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,52 @@
66
use Contributte\Latte\Macros\VersionMacros;
77
use Nette\Bridges\ApplicationLatte\ILatteFactory;
88
use Nette\DI\CompilerExtension;
9+
use Nette\DI\Definitions\FactoryDefinition;
910
use Nette\PhpGenerator\PhpLiteral;
11+
use Nette\Schema\Expect;
12+
use Nette\Schema\Schema;
13+
use stdClass;
1014

15+
/**
16+
* @property-read stdClass $config
17+
*/
1118
class VersionExtension extends CompilerExtension
1219
{
1320

14-
/** @var mixed[] */
15-
private $defaults = [
16-
'generated' => false,
17-
'rev' => null,
18-
'build' => null,
19-
'v' => null,
20-
];
21-
22-
/**
23-
* Decorate services
24-
*/
21+
public function getConfigSchema(): Schema
22+
{
23+
return Expect::structure([
24+
'generated' => Expect::bool(false),
25+
'rev' => Expect::anyOf(Expect::int(), Expect::string()),
26+
'build' => Expect::anyOf(Expect::int(), Expect::string()),
27+
'v' => Expect::anyOf(Expect::int(), Expect::string()),
28+
]);
29+
}
30+
2531
public function beforeCompile(): void
2632
{
2733
$builder = $this->getContainerBuilder();
28-
$config = $this->validateConfig($this->defaults);
34+
$config = $this->config;
2935

3036
if ($builder->getByType(ILatteFactory::class) === null) {
3137
throw new LatteDefinitionNotFoundException();
3238
}
3339

34-
if ($config['generated'] === true) {
35-
$config['rev'] = md5(microtime() . random_int(0, 100));
36-
$config['build'] = md5(microtime() . random_int(0, 100));
37-
$config['v'] = md5(microtime() . random_int(0, 100));
40+
$factoryDefinition = $builder->getDefinitionByType(ILatteFactory::class);
41+
assert($factoryDefinition instanceof FactoryDefinition);
42+
43+
if ($config->generated) {
44+
$config->rev = md5(microtime() . random_int(0, 100));
45+
$config->build = md5(microtime() . random_int(0, 100));
46+
$config->v = md5(microtime() . random_int(0, 100));
3847
}
3948

40-
$builder->getDefinitionByType(ILatteFactory::class)
49+
$factoryDefinition
50+
->getResultDefinition()
4151
->addSetup('?->onCompile[] = function ($engine) { ?::install($engine->getCompiler(), ?); }', [
4252
'@self',
4353
new PhpLiteral(VersionMacros::class),
44-
$config,
54+
(array) $config,
4555
]);
4656
}
4757

0 commit comments

Comments
 (0)