added annotation based exporter (#1831)

* added user exporter
* added project exporter
* added customer exporter
* added activity exporter
This commit is contained in:
Kevin Papst
2020-07-21 03:37:51 +02:00
committed by GitHub
parent 93a23f3fa3
commit aee063bb3c
79 changed files with 2980 additions and 215 deletions

View File

@@ -0,0 +1,32 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Export\Spreadsheet;
use App\Export\Spreadsheet\Extractor\AnnotationExtractor;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
final class AnnotatedObjectExporter
{
private $spreadsheetExporter;
private $annotationExtractor;
public function __construct(SpreadsheetExporter $spreadsheetExporter, AnnotationExtractor $annotationExtractor)
{
$this->spreadsheetExporter = $spreadsheetExporter;
$this->annotationExtractor = $annotationExtractor;
}
public function export(string $class, array $entries): Spreadsheet
{
$columns = $this->annotationExtractor->extract($class);
return $this->spreadsheetExporter->export($columns, $entries);
}
}