RendererWorker
extends AbstractWorker
in package
implements
RendererWorkerInterface
uses
StrategiesAwareTrait
Clase para los renderizadores.
Attributes
- #[Worker]
- $name: 'renderer'
- $component: 'document'
- $package: 'billing'
Table of Contents
Interfaces
- RendererWorkerInterface
- Interfaz para los renderizadores.
Properties
- $optionsSchema : array<string, array<string|int, mixed>|bool>
- Esquema de las opciones.
- $documentBagManager : DocumentBagManagerWorkerInterface
Methods
- __construct() : mixed
- render() : RenderResultInterface
- Realiza el renderizado del documento.
- renderPresentacion() : string
- Renderiza el documento con una presentación específica.
- resolveMimeType() : string
- Resuelve el tipo MIME correspondiente al formato de renderizado solicitado (ej. `pdf` => `application/pdf`).
- resolvePresentaciones() : array<string, int>
- Resuelve qué presentaciones renderizar y cuántas copias de cada una, a partir de la opción `renderer.renderings` de la bolsa.
Properties
$optionsSchema
Esquema de las opciones.
protected
array<string, array<string|int, mixed>|bool>
$optionsSchema
= ['__allowUndefinedKeys' => true, 'strategy' => ['types' => 'string', 'default' => 'template.estandar'], 'format' => ['types' => 'string', 'default' => 'pdf'], 'renderings' => ['types' => 'array', 'default' => [\libredte\lib\Core\Package\Billing\Component\Document\Enum\TipoPresentacion::TRIBUTARIA->value => 1]]]
$documentBagManager
private
DocumentBagManagerWorkerInterface
$documentBagManager
Methods
__construct()
public
__construct(DocumentBagManagerWorkerInterface $documentBagManager[, iterable<string|int, mixed> $strategies = [] ]) : mixed
Parameters
- $documentBagManager : DocumentBagManagerWorkerInterface
- $strategies : iterable<string|int, mixed> = []
render()
Realiza el renderizado del documento.
public
render(DocumentBagInterface $bag) : RenderResultInterface
Parameters
- $bag : DocumentBagInterface
-
Bolsa con los datos del documento a renderizar.
Attributes
- #[Operation]
- $parameters: ['bag' => ['example' => ['xmlDocument' => '', 'options' => ['renderer' => ['format' => 'pdf', 'renderings' => ['tributaria' => 1, 'cedible' => 1]]]]]]
Return values
RenderResultInterface —Resultado del renderizado (el o los archivos generados, ej. el PDF).
renderPresentacion()
Renderiza el documento con una presentación específica.
private
renderPresentacion(RendererStrategyInterface $strategy, DocumentBagInterface $bag, string $presentacion) : string
Le indica a la estrategia (y, a través de ella, a la plantilla) qué
presentación renderizar vía bag.options.renderer.presentation,
dejando el valor solo mientras dura esta llamada.
Parameters
- $strategy : RendererStrategyInterface
- $bag : DocumentBagInterface
-
Bolsa (ya normalizada) del documento.
- $presentacion : string
-
Valor de
TipoPresentaciona renderizar.
Tags
Return values
stringresolveMimeType()
Resuelve el tipo MIME correspondiente al formato de renderizado solicitado (ej. `pdf` => `application/pdf`).
private
resolveMimeType(string $format) : string
Parameters
- $format : string
-
Formato de renderizado (ej.
pdf,html).
Return values
stringresolvePresentaciones()
Resuelve qué presentaciones renderizar y cuántas copias de cada una, a partir de la opción `renderer.renderings` de la bolsa.
private
resolvePresentaciones(OptionsInterface $options, DocumentBagInterface $bag) : array<string, int>
Una presentación cedible solicitada para un tipo de documento que no
admite acuse de recibo se omite en silencio (no es un error: es una
combinación válida que simplemente no genera nada para esa
presentación).
Parameters
- $options : OptionsInterface
-
Opciones ya resueltas del worker.
- $bag : DocumentBagInterface
-
Bolsa (ya normalizada) del documento.
Tags
Return values
array<string, int> —Cantidad de copias por presentación
(TipoPresentacion::value), solo las que sí se van a renderizar.