Skip to content

Commit 55146b2

Browse files
authored
typo (#332)
1 parent 43f2a02 commit 55146b2

File tree

8 files changed

+86
-7
lines changed

8 files changed

+86
-7
lines changed

src/Application/Routers/RouteList.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ public function addRoute(
6565
#[Language('TEXT')]
6666
string $mask,
6767
array|string|\Closure $metadata = [],
68-
int|bool $oneWay = 0,
68+
bool $oneWay = false,
6969
): static
7070
{
71-
$this->add(new Route($mask, $metadata), (int) $oneWay);
71+
$this->add(new Route($mask, $metadata), $oneWay);
7272
return $this;
7373
}
7474

src/Application/UI/Presenter.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public function run(Application\Request $request): Application\Response
189189
$this->startup();
190190
if (!$this->startupCheck) {
191191
$class = static::getReflection()->getMethod('startup')->getDeclaringClass()->getName();
192-
throw new Nette\InvalidStateException("Method $class::startup() or its descendant doesn't call parent::startup().");
192+
throw new Nette\InvalidStateException("Method $class::startup() or its parents doesn't call parent::startup().");
193193
}
194194

195195
// calls $this->action<Action>()

src/Bridges/ApplicationDI/LatteExtension.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,10 @@ public function loadConfiguration(): void
8080
}
8181

8282
$builder->addDefinition($this->prefix('templateFactory'))
83-
->setFactory(ApplicationLatte\TemplateFactory::class)
84-
->setArguments(['templateClass' => $config->templateClass]);
83+
->setFactory(ApplicationLatte\TemplateFactory::class, [
84+
'templateClass' => $config->templateClass,
85+
'configVars' => $config->variables,
86+
]);
8587

8688
if ($this->name === 'latte') {
8789
$builder->addAlias('nette.latteFactory', $this->prefix('latteFactory'));

src/Bridges/ApplicationLatte/DefaultTemplate.php

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ final class DefaultTemplate extends Template
2929

3030
/** @var \stdClass[] */
3131
public array $flashes = [];
32+
public \stdClass $config;
3233

3334

3435
/**

src/Bridges/ApplicationLatte/TemplateFactory.php

+2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public function __construct(
2828
private readonly ?Nette\Http\IRequest $httpRequest = null,
2929
private readonly ?Nette\Security\User $user = null,
3030
$templateClass = null,
31+
private array $configVars = [],
3132
) {
3233
if ($templateClass && (!class_exists($templateClass) || !is_a($templateClass, Template::class, true))) {
3334
throw new Nette\InvalidArgumentException("Class $templateClass does not implement " . Template::class . ' or it does not exist.');
@@ -63,6 +64,7 @@ public function createTemplate(?UI\Control $control = null, ?string $class = nul
6364
'flashes' => $flashes,
6465
'control' => $control,
6566
'presenter' => $presenter,
67+
'config' => $control instanceof UI\Presenter && $this->configVars ? (object) $this->configVars : null,
6668
];
6769

6870
foreach ($params as $key => $value) {

src/Bridges/ApplicationTracy/RoutingPanel.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private function analyse(Routing\RouteList $router, ?Nette\Http\IRequest $httpRe
8585
continue;
8686
}
8787

88-
$matched = $flags[$i] & $router::ONE_WAY ? 'oneway' : 'no';
88+
$matched = empty($flags[$i]['oneWay']) ? 'no' : 'oneway';
8989
$params = $e = null;
9090
try {
9191
if (
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
<?php
2+
3+
/**
4+
* Test: LatteExtension v3
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
use Nette\DI;
10+
use Tester\Assert;
11+
12+
require __DIR__ . '/../bootstrap.php';
13+
14+
Tester\Environment::bypassFinals();
15+
16+
17+
test('no variables', function () {
18+
$loader = new DI\Config\Loader;
19+
$config = $loader->load(Tester\FileMock::create('
20+
latte:
21+
variables:
22+
', 'neon'));
23+
24+
$compiler = new DI\Compiler;
25+
$compiler->addExtension('latte', new Nette\Bridges\ApplicationDI\LatteExtension('', false));
26+
$code = $compiler
27+
->addConfig($config)
28+
->setClassName('Container1')
29+
->compile();
30+
eval($code);
31+
32+
$container = new Container1;
33+
$latteFactory = $container->getService('latte.templateFactory');
34+
$presenter = Mockery::mock(Nette\Application\UI\Presenter::class);
35+
$presenter->shouldReceive('getHttpResponse')->andReturn(Mockery::mock(Nette\Http\IResponse::class)->shouldIgnoreMissing());
36+
$presenter->shouldIgnoreMissing();
37+
38+
$template = $latteFactory->createTemplate($presenter);
39+
Assert::notContains('config', $template->getParameters());
40+
});
41+
42+
43+
test('presenter presence', function () {
44+
$loader = new DI\Config\Loader;
45+
$config = $loader->load(Tester\FileMock::create('
46+
latte:
47+
variables:
48+
foo: bar
49+
', 'neon'));
50+
51+
$compiler = new DI\Compiler;
52+
$compiler->addExtension('latte', new Nette\Bridges\ApplicationDI\LatteExtension('', false));
53+
$code = $compiler
54+
->addConfig($config)
55+
->setClassName('Container2')
56+
->compile();
57+
eval($code);
58+
59+
$container = new Container2;
60+
$latteFactory = $container->getService('latte.templateFactory');
61+
$template = $latteFactory->createTemplate();
62+
Assert::notContains('config', $template->getParameters());
63+
64+
65+
$presenter = Mockery::mock(Nette\Application\UI\Presenter::class);
66+
$presenter->shouldReceive('getHttpResponse')->andReturn(Mockery::mock(Nette\Http\IResponse::class)->shouldIgnoreMissing());
67+
$presenter->shouldIgnoreMissing();
68+
69+
$template = $latteFactory->createTemplate($presenter);
70+
Assert::equal(
71+
(object) ['foo' => 'bar'],
72+
$template->getParameters()['config'],
73+
);
74+
});

tests/Routers/RouteList.addRoute.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require __DIR__ . '/Route.php';
1212

1313
$list = new RouteList;
1414
$list->addRoute('foo', ['presenter' => 'foo'], RouteList::ONE_WAY);
15-
$list->addRoute('bar', ['presenter' => 'bar'], RouteList::ONE_WAY);
15+
$list->addRoute('bar', ['presenter' => 'bar'], oneWay: true);
1616
$list->addRoute('hello', ['presenter' => 'hello']);
1717

1818

0 commit comments

Comments
 (0)