Skip to content

Commit

Permalink
Fix build against latest nette/application
Browse files Browse the repository at this point in the history
  • Loading branch information
xificurk committed Feb 9, 2024
1 parent 005c5f3 commit 74d90e4
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
4 changes: 4 additions & 0 deletions phpstan.tests.neon.dist
Expand Up @@ -38,3 +38,7 @@ parameters:
message: "#^Cannot cast mixed to string\\.$#"
count: 1
path: tests/FileUploadControl/Fixtures/DummyTranslator.php
- # nette/application 3.1 compatibility
message: "#^Parameter .* of method Nette\\\\Application\\\\UI\\\\Presenter\\:\\:injectPrimary\\(\\) expects .*, .* given\\.$#"
count: 1
path: tests/FileUploadControl/Fixtures/TestPresenter.php
19 changes: 14 additions & 5 deletions tests/FileUploadControl/Fixtures/TestPresenter.php
Expand Up @@ -8,6 +8,7 @@
use Nette\Application\Routers\SimpleRouter;
use Nette\Application\UI\Form;
use Nette\Application\UI\Template;
use ReflectionMethod;

final class TestPresenter extends Nette\Application\UI\Presenter
{
Expand All @@ -26,11 +27,19 @@ public static function create(?Nette\Http\IRequest $httpRequest = null, ?callabl

$presenter->formConfigurator = $formConfigurator;

$httpRequest ??= $presenter->createHttpRequest();
$httpResponse = $presenter->createHttpResponse();
$templateFactory = $presenter->createTemplateFactory();
$router = new SimpleRouter();
$presenter->injectPrimary(null, null, $router, $httpRequest, $httpResponse, null, null, $templateFactory);
$primaryDependencies = [];
$rc = new ReflectionMethod($presenter, 'injectPrimary');
foreach ($rc->getParameters() as $parameter) {
if ($parameter->isDefaultValueAvailable()) {
continue;
}
$primaryDependencies[$parameter->getName()] = null;
}
$primaryDependencies['httpRequest'] = $httpRequest ?? $presenter->createHttpRequest();
$primaryDependencies['httpResponse'] = $presenter->createHttpResponse();
$primaryDependencies['router'] = new SimpleRouter();
$primaryDependencies['templateFactory'] = $presenter->createTemplateFactory();
$presenter->injectPrimary(...$primaryDependencies);

$presenter->setParent(null, 'Test');
$presenter->changeAction('default');
Expand Down

0 comments on commit 74d90e4

Please sign in to comment.