Printers¶
A printer usually processes the collected project data and outputs it in a specific format.
Dog comes with a bundled markdown Printer, but you may use a customized printer instead to output other formats
like html
or pdf
.
How do they work?¶
A Printer class must implement Klitsche\Dog\PrinterInterface
. It is then utilized in a 2 phase process:
1. Create¶
After dog did build the Project
the Printer is initialized by
calling create(ConfigInterface $config, EventDispatcherInterface $dispatcher): self
.
You can access the custom printer configuration via the ConfigInterface::getPrinterConfig
interface.
The dispatcher can be used to emit progress or errors which will be handled by the dog app.
Tip
Use the provided traits Klitsche\Dog\Events\ErrorEmitterTrait
, Klitsche\Dog\Events\EventDispatcherAwareTrait
and Klitsche\Dog\Events\ProgressEmitterTrait
to simplify emitting pogress or errors.
2. Print¶
After dog has built the Project
the printer then will be called via print(ProjectInterface $project): void
and the printer can do its job.
3rd party Printer¶
- csoellinger/dog-html-printer (HTML)
Hint
Please open up a PR to list your 3rd party printer here.