Skip to content

Commit 2e36bcd

Browse files
PHPStan improvements (#65)
- Set max level in PHPStan config - Use PHPStan in tests dir - Use PHPStan config in CI
1 parent 8a91257 commit 2e36bcd

9 files changed

Lines changed: 21 additions & 15 deletions

File tree

.github/workflows/phpstan.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ jobs:
3333
3434
- name: Analyze code for issues
3535
run: |
36-
php vendor/bin/phpstan analyse src --level 8
36+
php vendor/bin/phpstan analyse

phpstan.neon

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
parameters:
2-
level: 8
2+
level: max
33
paths:
44
- 'src'
5+
- 'tests'
56
excludePaths:
67
- 'src/zugferd10'
8+
- 'tests/zugferd10'

src/zugferd2/Reader.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public function __construct(private readonly SerializerInterface $serializer)
1616

1717
public function transform(string $xml): CrossIndustryInvoice
1818
{
19+
// @phpstan-ignore-next-line
1920
return $this->serializer->deserialize($xml, CrossIndustryInvoice::class, 'xml');
2021
}
2122

tests/zugferd2/Tests/Legacy/BuilderTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ public function testBuildXRechnungExample(): void
198198

199199
$xml = Builder::create()->transform($invoice);
200200
self::assertNotEmpty($xml);
201-
$referenceFile = file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml');
201+
$referenceFile = (string)file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_XRECHNUNG_Einfach.xml');
202202
$referenceFile = ReaderAndBuildTest::reformatXml($referenceFile);
203203
$xml = ReaderAndBuildTest::reformatXml($xml);
204204
self::assertEquals($referenceFile, $xml);
@@ -389,7 +389,7 @@ public function testBuildXRechnungExtendedExample(): void
389389

390390
$xml = Builder::create()->transform($invoice);
391391
self::assertNotEmpty($xml);
392-
$referenceFile = file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_XRECHNUNG_Extended.xml');
392+
$referenceFile = (string)file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_XRECHNUNG_Extended.xml');
393393
$referenceFile = ReaderAndBuildTest::reformatXml($referenceFile);
394394
$xml = ReaderAndBuildTest::reformatXml($xml);
395395
self::assertEquals($referenceFile, $xml);

tests/zugferd2/Tests/Legacy/ReaderAndBuildTest.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public function setupAnnotationRegistry(): void
2424
/** @dataProvider dataProvider */
2525
public function testGetDocument(string $filename): void
2626
{
27-
$xml = file_get_contents(__DIR__ . '/official_example_xml/' . $filename);
27+
$xml = (string)file_get_contents(__DIR__ . '/official_example_xml/' . $filename);
2828
$obj = Reader::create()->transform($xml);
2929
$str = Builder::create()->transform($obj);
3030

@@ -36,7 +36,10 @@ public function testGetDocument(string $filename): void
3636
self::assertTrue(true);
3737
}
3838

39-
public function dataProvider()
39+
/**
40+
* @return string[][]
41+
*/
42+
public function dataProvider(): array
4043
{
4144
return [
4245
['zugferd_2p1_BASIC-WL_Einfach.xml'],

tests/zugferd2/Tests/Legacy/ValidatorTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,18 @@
99

1010
class ValidatorTest extends TestCase
1111
{
12-
public function testXsdSuccess()
12+
public function testXsdSuccess(): void
1313
{
1414
$validator = new Validator();
15-
$xml = file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_EN16931_Einfach.xml');
15+
$xml = (string)file_get_contents(__DIR__ . '/official_example_xml/zugferd_2p1_EN16931_Einfach.xml');
1616
$errors = $validator->validateAgainstXsd($xml, Validator::SCHEMA_EN16931);
1717
self::assertNull($errors, $errors ?? '');
1818
}
1919

20-
public function testXsdFail()
20+
public function testXsdFail(): void
2121
{
2222
$validator = new Validator();
23-
$xml = file_get_contents(__DIR__ . '/references/broken_example.xml');
23+
$xml = (string)file_get_contents(__DIR__ . '/references/broken_example.xml');
2424
$errors = $validator->validateAgainstXsd($xml, Validator::SCHEMA_EN16931);
2525
self::assertNotNull($errors, 'Validator says broken xml is valid.');
2626
}

tests/zugferd2/Tests/ProfileXRechnungTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ public function testBuildXRechnungReisekostenabrechnung(): void
362362
$additionalReferencedDocument->attachmentBinaryObject = $additionalReferencedDocumentBinaryObject = new BinaryObject();
363363
$additionalReferencedDocumentBinaryObject->filename = 'Hotelrechnung-Immo.pdf';
364364
$additionalReferencedDocumentBinaryObject->mimeCode = 'application/pdf';
365-
$additionalReferencedDocumentBinaryObject->value = base64_encode(file_get_contents(__DIR__ . '/Examples/XRECHNUNG/Attachments/EN16931_Betriebskostenabrechnung_Abrechnung 2010.pdf'));
365+
$additionalReferencedDocumentBinaryObject->value = base64_encode((string)file_get_contents(__DIR__ . '/Examples/XRECHNUNG/Attachments/EN16931_Betriebskostenabrechnung_Abrechnung 2010.pdf'));
366366

367367
$invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement = new HeaderTradeSettlement();
368368
$invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement->currency = 'EUR';
@@ -507,7 +507,7 @@ public function testBuildXRechnungBetrieskostenabrechnung(): void
507507
$additionalReferencedDocument->attachmentBinaryObject = $additionalReferencedDocumentBinaryObject = new BinaryObject();
508508
$additionalReferencedDocumentBinaryObject->filename = 'Betriebskostenabrechnung.pdf';
509509
$additionalReferencedDocumentBinaryObject->mimeCode = 'application/pdf';
510-
$additionalReferencedDocumentBinaryObject->value = base64_encode(file_get_contents(__DIR__ . '/Examples/XRECHNUNG/Attachments/EN16931_Betriebskostenabrechnung_Abrechnung 2010.pdf'));
510+
$additionalReferencedDocumentBinaryObject->value = base64_encode((string)file_get_contents(__DIR__ . '/Examples/XRECHNUNG/Attachments/EN16931_Betriebskostenabrechnung_Abrechnung 2010.pdf'));
511511

512512
$invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement = new HeaderTradeSettlement();
513513
$invoice->supplyChainTradeTransaction->applicableHeaderTradeSettlement->currency = 'EUR';

tests/zugferd2/Tests/Traits/AssertXmlOutputTrait.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ private function buildAndAssertXmlFromCII(CrossIndustryInvoice $invoice, string
2121
$result = (new Validator())->validateAgainstXsd($xml, $validatorSchema);
2222
self::assertNull($result, $result ?? '');
2323

24-
$referenceFile = file_get_contents($referenceFilePath);
24+
$referenceFile = (string)file_get_contents($referenceFilePath);
2525
$referenceFile = ReaderAndBuildTest::reformatXml($referenceFile);
2626
self::assertEquals($referenceFile, $xml);
2727
}

tests/zugferd2/Tests/Traits/ReformatXmlTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ trait ReformatXmlTrait
88
{
99
public static function reformatXml(string $xml): string
1010
{
11-
$xml = preg_replace('/<!--(.|\s)*?-->/', '', $xml);
11+
$xml = (string)preg_replace('/<!--(.|\s)*?-->/', '', $xml);
1212

1313
$doc = new \DOMDocument('1.0', 'UTF-8');
1414
$doc->preserveWhiteSpace = false;
1515
$doc->formatOutput = true;
1616
$doc->loadXML($xml);
17-
return $doc->saveXML();
17+
return (string)$doc->saveXML();
1818
}
1919
}

0 commit comments

Comments
 (0)