Report - viames/pair GitHub Wiki
Pair framework: Report
Pair\Services\Report is an abstract base for spreadsheet exports (PhpSpreadsheet).
Main methods
save(string $filePath): booldownload(): voidsetTitle(string $title): self,setSubject(string $subject): selfsetBuilder(string $library): selfgetSpreadsheet(): Spreadsheet
Protected helpers for subclasses:
addColumn(string $head, ?string $format = null): selfaddRow(array $indexedCellsValue): voidsetDataAndColumnsFromDictionary(array $dictionary): selfsetDataAndColumnsFromObjects(array $objectList): self
Implementation example
final class OrdersReport extends \Pair\Services\Report {
public function build(array $rows): void {
$this->addColumn('Order #')
->addColumn('Customer')
->addColumn('Total');
foreach ($rows as $row) {
$this->addRow([$row['id'], $row['customer'], $row['total']]);
}
}
}
$report = new OrdersReport();
$report->setTitle('Orders')->build($data);
$report->save(APP_PATH . '/temp/orders.xlsx');
Notes
- Override
beforeSave()andafterSave()for custom hooks. - Date/boolean format helpers are available in the base class.