Skip to content

Commit 9c5c2d7

Browse files
committed
Typed private properties and numerous static analysis fixes
Signed-off-by: George Steel <[email protected]>
1 parent b874ad9 commit 9c5c2d7

9 files changed

+31
-43
lines changed

src/HelperPluginManagerFactory.php

+11-3
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,29 @@
44

55
namespace Mezzio\LaminasView;
66

7+
use ArrayAccess;
78
use Laminas\ServiceManager\Config;
9+
use Laminas\ServiceManager\ConfigInterface;
810
use Laminas\View\HelperPluginManager;
911
use Psr\Container\ContainerInterface;
1012

13+
use function assert;
14+
use function is_array;
15+
16+
/** @psalm-import-type ServiceManagerConfigurationType from ConfigInterface */
1117
class HelperPluginManagerFactory
1218
{
1319
public function __invoke(ContainerInterface $container): HelperPluginManager
1420
{
1521
$manager = new HelperPluginManager($container);
1622

1723
$config = $container->has('config') ? $container->get('config') : [];
18-
$config = $config['view_helpers'] ?? [];
24+
assert(is_array($config) || $config instanceof ArrayAccess);
25+
/** @psalm-var ServiceManagerConfigurationType $helperConfig */
26+
$helperConfig = $config['view_helpers'] ?? [];
1927

20-
if (! empty($config)) {
21-
(new Config($config))->configureServiceManager($manager);
28+
if (! empty($helperConfig)) {
29+
(new Config($helperConfig))->configureServiceManager($manager);
2230
}
2331

2432
return $manager;

src/LaminasViewRenderer.php

+4-15
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,9 @@ class LaminasViewRenderer implements TemplateRendererInterface
3939
use ArrayParametersTrait;
4040
use DefaultParamsTrait;
4141

42-
/** @var ViewModel|null */
43-
private $layout;
44-
45-
/** @var RendererInterface */
46-
private $renderer;
47-
48-
/** @var NamespacedPathStackResolver */
49-
private $resolver;
42+
private ?ViewModel $layout = null;
43+
private RendererInterface $renderer;
44+
private NamespacedPathStackResolver $resolver;
5045

5146
/**
5247
* Constructor
@@ -264,13 +259,7 @@ private function injectNamespacedResolver(AggregateResolver $aggregate): void
264259

265260
private function hasNamespacedResolver(AggregateResolver $aggregate): bool
266261
{
267-
foreach ($aggregate as $resolver) {
268-
if ($resolver instanceof NamespacedPathStackResolver) {
269-
return true;
270-
}
271-
}
272-
273-
return false;
262+
return $this->getNamespacedResolver($aggregate) !== null;
274263
}
275264

276265
private function getNamespacedResolver(AggregateResolver $aggregate): ?NamespacedPathStackResolver

src/ServerUrlHelper.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ class ServerUrlHelper extends AbstractHelper
1818
{
1919
use DeprecatedAbstractHelperHierarchyTrait;
2020

21-
/** @var BaseHelper */
22-
private $helper;
21+
private BaseHelper $helper;
2322

2423
public function __construct(BaseHelper $helper)
2524
{

src/UrlHelper.php

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ class UrlHelper extends AbstractHelper
1515
{
1616
use DeprecatedAbstractHelperHierarchyTrait;
1717

18-
/** @var BaseHelper */
19-
private $helper;
18+
private BaseHelper $helper;
2019

2120
public function __construct(BaseHelper $helper)
2221
{

test/HelperPluginManagerFactoryTest.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44

55
namespace MezzioTest\LaminasView;
66

7-
use Laminas\ServiceManager\ServiceManager;
87
use Laminas\View\HelperPluginManager;
98
use Mezzio\LaminasView\HelperPluginManagerFactory;
109
use MezzioTest\LaminasView\TestAsset\TestHelper;
1110
use PHPUnit\Framework\MockObject\MockObject;
1211
use PHPUnit\Framework\TestCase;
12+
use Psr\Container\ContainerInterface;
1313

1414
class HelperPluginManagerFactoryTest extends TestCase
1515
{
16-
/** @var ServiceManager&MockObject */
17-
private $container;
16+
/** @var ContainerInterface&MockObject */
17+
private ContainerInterface $container;
1818

1919
protected function setUp(): void
2020
{
21-
$this->container = $this->createMock(ServiceManager::class);
21+
$this->container = $this->createMock(ContainerInterface::class);
2222
}
2323

2424
public function testCallingFactoryWithNoConfigReturnsHelperPluginManagerInstance(): HelperPluginManager

test/LaminasViewRendererFactoryTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private function assertPathNamespaceContains(
102102
array $paths,
103103
?string $message = null
104104
): void {
105-
$message = $message ?: sprintf('Did not find path %s in namespace %s', $expected, $namespace ?: null);
105+
$message = $message ?: sprintf('Did not find path %s in namespace %s', (string) $expected, $namespace ?: '');
106106

107107
$found = [];
108108
foreach ($paths as $path) {

test/LaminasViewRendererTest.php

+5-10
Original file line numberDiff line numberDiff line change
@@ -28,17 +28,13 @@
2828

2929
class LaminasViewRendererTest extends TestCase
3030
{
31-
/** @var TemplatePathStack */
32-
private $resolver;
33-
34-
/** @var PhpRenderer */
35-
private $render;
31+
private PhpRenderer $render;
3632

3733
protected function setUp(): void
3834
{
39-
$this->resolver = new TemplatePathStack();
40-
$this->render = new PhpRenderer();
41-
$this->render->setResolver($this->resolver);
35+
$resolver = new TemplatePathStack();
36+
$this->render = new PhpRenderer();
37+
$this->render->setResolver($resolver);
4238
}
4339

4440
public function assertTemplatePath(string $path, TemplatePath $templatePath, ?string $message = null): void
@@ -113,6 +109,7 @@ public function testInstantiatingWithInvalidLayout(): void
113109
$this->expectException(InvalidArgumentException::class);
114110
$this->expectExceptionMessage('Layout must be a string layout template name');
115111

112+
/** @psalm-suppress InvalidArgument */
116113
new LaminasViewRenderer(null, []);
117114
}
118115

@@ -121,7 +118,6 @@ public function testCanAddPathWithEmptyNamespace(): void
121118
$renderer = new LaminasViewRenderer();
122119
$renderer->addPath(__DIR__ . '/TestAsset');
123120
$paths = $renderer->getPaths();
124-
$this->assertIsArray($paths);
125121
$this->assertCount(1, $paths);
126122
$this->assertTemplatePath(__DIR__ . '/TestAsset' . DIRECTORY_SEPARATOR, $paths[0]);
127123
$this->assertTemplatePathString(__DIR__ . '/TestAsset' . DIRECTORY_SEPARATOR, $paths[0]);
@@ -133,7 +129,6 @@ public function testCanAddPathWithNamespace(): void
133129
$renderer = new LaminasViewRenderer();
134130
$renderer->addPath(__DIR__ . '/TestAsset', 'test');
135131
$paths = $renderer->getPaths();
136-
$this->assertIsArray($paths);
137132
$this->assertCount(1, $paths);
138133
$this->assertTemplatePath(__DIR__ . '/TestAsset' . DIRECTORY_SEPARATOR, $paths[0]);
139134
$this->assertTemplatePathString(__DIR__ . '/TestAsset' . DIRECTORY_SEPARATOR, $paths[0]);

test/ServerUrlHelperTest.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@
1414

1515
class ServerUrlHelperTest extends TestCase
1616
{
17-
/** @var ServerUrlHelper */
18-
private $helper;
17+
private ServerUrlHelper $helper;
1918
/** @var BaseHelper&MockObject */
20-
private $baseHelper;
19+
private BaseHelper $baseHelper;
2120

2221
protected function setUp(): void
2322
{

test/UrlHelperTest.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
class UrlHelperTest extends TestCase
1313
{
1414
/** @var BaseHelper&MockObject */
15-
private $baseHelper;
16-
/** @var UrlHelper */
17-
private $helper;
15+
private BaseHelper $baseHelper;
16+
private UrlHelper $helper;
1817

1918
protected function setUp(): void
2019
{

0 commit comments

Comments
 (0)