Skip to content

Commit 723e4dc

Browse files
authored
Merge pull request #7 from php-etl/feature/csv
Feature/csv
2 parents 5d58463 + 9354efa commit 723e4dc

22 files changed

+216
-205
lines changed

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
"ext-dom": "*",
2424
"ext-xmlreader": "*",
2525
"ext-simplexml": "*",
26-
"php-etl/bucket": "0.1.x-dev",
26+
"php-etl/bucket": "^0.1",
2727
"psr/log": "^1.1@dev",
2828
"box/spout": "^3.1@dev",
29-
"php-etl/pipeline": "0.2.x-dev",
30-
"php-etl/phpunit-extension": "dev-master"
29+
"php-etl/pipeline": "^0.2",
30+
"php-etl/phpunit-extension": "^0.1"
3131
},
3232
"autoload": {
3333
"psr-4": {
@@ -41,7 +41,7 @@
4141
},
4242
"extra": {
4343
"branch-alias": {
44-
"dev-master": "1.0.x-dev"
44+
"dev-master": "0.1.x-dev"
4545
}
4646
},
4747
"require-dev": {

composer.lock

Lines changed: 113 additions & 115 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/CSV/FingersCrossed/Extractor.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@
33
namespace Kiboko\Component\Flow\Spreadsheet\CSV\FingersCrossed;
44

55
use Box\Spout\Common\Entity\Row;
6-
use Box\Spout\Reader\CSV\Reader;
7-
use Box\Spout\Reader\Exception\ReaderNotOpenedException;
6+
use Box\Spout\Reader\ReaderInterface;
87
use Kiboko\Component\Flow\Spreadsheet\Sheet;
98
use Kiboko\Contract\Pipeline\ExtractorInterface;
9+
use Psr\Log\LoggerInterface;
10+
use Psr\Log\NullLogger;
1011

1112
class Extractor implements ExtractorInterface
1213
{
13-
/**
14-
* @throws ReaderNotOpenedException
15-
*/
14+
private LoggerInterface $logger;
15+
1616
public function __construct(
17-
private Reader $reader,
18-
private int $skipLines = 0
17+
private ReaderInterface $reader,
18+
private int $skipLines = 0,
19+
?LoggerInterface $logger = null
1920
) {
21+
$this->logger = $logger ?? new NullLogger();
2022
}
2123

2224
public function extract(): iterable

src/CSV/FingersCrossed/Loader.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,25 @@
44

55
use Box\Spout\Common\Entity\Cell;
66
use Box\Spout\Common\Entity\Row;
7-
use Box\Spout\Writer\CSV\Writer;
7+
use Box\Spout\Writer\WriterInterface;
88
use Kiboko\Component\Bucket\AcceptanceResultBucket;
99
use Kiboko\Component\Bucket\EmptyResultBucket;
1010
use Kiboko\Component\Flow\Spreadsheet\Sheet;
1111
use Kiboko\Contract\Bucket\ResultBucketInterface;
1212
use Kiboko\Contract\Pipeline\FlushableInterface;
1313
use Kiboko\Contract\Pipeline\LoaderInterface;
14+
use Psr\Log\LoggerInterface;
15+
use Psr\Log\NullLogger;
1416

1517
class Loader implements LoaderInterface, FlushableInterface
1618
{
17-
public function __construct(private Writer $writer)
18-
{
19+
private LoggerInterface $logger;
20+
21+
public function __construct(
22+
private WriterInterface $writer,
23+
?LoggerInterface $logger = null
24+
) {
25+
$this->logger = $logger ?? new NullLogger();
1926
}
2027

2128
public function load(): \Generator

src/CSV/Safe/Extractor.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,22 @@
33
namespace Kiboko\Component\Flow\Spreadsheet\CSV\Safe;
44

55
use Box\Spout\Common\Entity\Row;
6-
use Box\Spout\Reader\CSV\Reader;
7-
use Box\Spout\Reader\Exception\ReaderNotOpenedException;
6+
use Box\Spout\Reader\ReaderInterface;
87
use Kiboko\Component\Flow\Spreadsheet\Sheet;
98
use Kiboko\Contract\Pipeline\ExtractorInterface;
9+
use Psr\Log\LoggerInterface;
10+
use Psr\Log\NullLogger;
1011

1112
class Extractor implements ExtractorInterface
1213
{
13-
/**
14-
* @throws ReaderNotOpenedException
15-
*/
14+
private LoggerInterface $logger;
15+
1616
public function __construct(
17-
private Reader $reader,
18-
private int $skipLines = 0
17+
private ReaderInterface $reader,
18+
private int $skipLines = 0,
19+
?LoggerInterface $logger = null
1920
) {
21+
$this->logger = $logger ?? new NullLogger();
2022
}
2123

2224
public function extract(): iterable

src/CSV/Safe/Loader.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,25 @@
44

55
use Box\Spout\Common\Entity\Cell;
66
use Box\Spout\Common\Entity\Row;
7-
use Box\Spout\Writer\CSV\Writer;
7+
use Box\Spout\Writer\WriterInterface;
88
use Kiboko\Component\Bucket\AcceptanceResultBucket;
99
use Kiboko\Component\Bucket\EmptyResultBucket;
1010
use Kiboko\Component\Flow\Spreadsheet\Sheet;
1111
use Kiboko\Contract\Bucket\ResultBucketInterface;
1212
use Kiboko\Contract\Pipeline\FlushableInterface;
1313
use Kiboko\Contract\Pipeline\LoaderInterface;
14+
use Psr\Log\LoggerInterface;
15+
use Psr\Log\NullLogger;
1416

1517
class Loader implements LoaderInterface, FlushableInterface
1618
{
17-
public function __construct(private Writer $writer)
18-
{
19+
private LoggerInterface $logger;
20+
21+
public function __construct(
22+
private WriterInterface $writer,
23+
?LoggerInterface $logger = null
24+
) {
25+
$this->logger = $logger ?? new NullLogger();
1926
}
2027

2128
public function load(): \Generator

src/Sheet/FingersCrossed/Extractor.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,20 @@
77
use Kiboko\Component\Bucket\EmptyResultBucket;
88
use Kiboko\Contract\Bucket\ResultBucketInterface;
99
use Kiboko\Contract\Pipeline\ExtractorInterface;
10+
use Psr\Log\LoggerInterface;
11+
use Psr\Log\NullLogger;
1012

1113
class Extractor implements ExtractorInterface
1214
{
15+
private LoggerInterface $logger;
16+
1317
public function __construct(
1418
private ReaderInterface $reader,
1519
private string $sheetName,
16-
private int $skipLines = 0
20+
private int $skipLines = 0,
21+
?LoggerInterface $logger = null
1722
) {
23+
$this->logger = $logger ?? new NullLogger();
1824
}
1925

2026
public function extract(): iterable

src/Sheet/FingersCrossed/Loader.php

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,19 @@
1313
use Kiboko\Contract\Pipeline\FlushableInterface;
1414
use Kiboko\Contract\Pipeline\LoaderInterface;
1515
use Psr\Log\LoggerInterface;
16+
use Psr\Log\NullLogger;
1617

1718
final class Loader implements LoaderInterface, FlushableInterface
1819
{
19-
private ?LoggerInterface $logger = null;
20+
private LoggerInterface $logger;
2021

2122
public function __construct(
2223
private WriterInterface $writer,
23-
private string $sheetName
24+
private string $sheetName,
25+
?LoggerInterface $logger = null
2426
) {
27+
$this->writer->getCurrentSheet()->setName($this->sheetName);
28+
$this->logger = $logger ?? new NullLogger();
2529
}
2630

2731
public function load(): \Generator
@@ -46,16 +50,4 @@ public function flush(): ResultBucketInterface
4650

4751
return new EmptyResultBucket();
4852
}
49-
50-
public function getLogger(): ?LoggerInterface
51-
{
52-
return $this->logger;
53-
}
54-
55-
public function setLogger(?LoggerInterface $logger): self
56-
{
57-
$this->logger = $logger;
58-
59-
return $this;
60-
}
6153
}

src/Sheet/Safe/Extractor.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,20 @@
77
use Kiboko\Component\Bucket\EmptyResultBucket;
88
use Kiboko\Contract\Bucket\ResultBucketInterface;
99
use Kiboko\Contract\Pipeline\ExtractorInterface;
10+
use Psr\Log\LoggerInterface;
11+
use Psr\Log\NullLogger;
1012

1113
class Extractor implements ExtractorInterface
1214
{
15+
private LoggerInterface $logger;
16+
1317
public function __construct(
1418
private ReaderInterface $reader,
1519
private string $sheetName,
16-
private int $skipLines = 0
20+
private int $skipLines = 0,
21+
?LoggerInterface $logger = null
1722
) {
23+
$this->logger = $logger ?? new NullLogger();
1824
}
1925

2026
public function extract(): iterable

src/Sheet/Safe/Loader.php

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,19 @@
1313
use Kiboko\Contract\Pipeline\FlushableInterface;
1414
use Kiboko\Contract\Pipeline\LoaderInterface;
1515
use Psr\Log\LoggerInterface;
16+
use Psr\Log\NullLogger;
1617

1718
final class Loader implements LoaderInterface, FlushableInterface
1819
{
19-
private ?LoggerInterface $logger = null;
20+
private LoggerInterface $logger;
2021

2122
public function __construct(
2223
private WriterInterface $writer,
23-
private string $sheetName
24+
private string $sheetName,
25+
?LoggerInterface $logger = null
2426
) {
2527
$this->writer->getCurrentSheet()->setName($this->sheetName);
28+
$this->logger = $logger ?? new NullLogger();
2629
}
2730

2831
public function load(): \Generator
@@ -56,16 +59,4 @@ public function flush(): ResultBucketInterface
5659

5760
return new EmptyResultBucket();
5861
}
59-
60-
public function getLogger(): ?LoggerInterface
61-
{
62-
return $this->logger;
63-
}
64-
65-
public function setLogger(?LoggerInterface $logger): self
66-
{
67-
$this->logger = $logger;
68-
69-
return $this;
70-
}
7162
}

0 commit comments

Comments
 (0)