Skip to content

Commit

Permalink
Se crea interfaz para los renderizadores de documentos.
Browse files Browse the repository at this point in the history
  • Loading branch information
estebandelaf committed Dec 21, 2024
1 parent 147f6f1 commit e6f4b5b
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/Sii/Dte/Documento/Renderer/AbstractRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
* Clase abstracta (base) para los renderizadores de documentos tributarios
* electrónicos (DTE).
*/
abstract class AbstractRenderer
abstract class AbstractRenderer implements RendererInterface
{
/**
* Plantilla por defecto que se debe utilizar al renderizar el DTE.
Expand Down
4 changes: 2 additions & 2 deletions src/Sii/Dte/Documento/Renderer/DocumentoRenderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ private function normalizeOptions(array $options): array
* Obtener el objeto que se encarga de la renderización del documento.
*
* @param string $render Clase del renderizador que se debe utilizar.
* @return AbstractRenderer
* @return RendererInterface
*/
private function getRendererInstance(string $renderer): AbstractRenderer
private function getRendererInstance(string $renderer): RendererInterface
{
// Si no existe el renderizador se crea.
if (!isset($this->renderers[$renderer])) {
Expand Down
45 changes: 45 additions & 0 deletions src/Sii/Dte/Documento/Renderer/RendererInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?php

declare(strict_types=1);

/**
* LibreDTE: Biblioteca PHP (Núcleo).
* Copyright (C) LibreDTE <https://www.libredte.cl>
*
* Este programa es software libre: usted puede redistribuirlo y/o modificarlo
* bajo los términos de la Licencia Pública General Affero de GNU publicada
* por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia,
* o (a su elección) cualquier versión posterior de la misma.
*
* Este programa se distribuye con la esperanza de que sea útil, pero SIN
* GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD
* PARA UN PROPÓSITO DETERMINADO. Consulte los detalles de la Licencia Pública
* General Affero de GNU para obtener una información más detallada.
*
* Debería haber recibido una copia de la Licencia Pública General Affero de
* GNU junto a este programa.
*
* En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>.
*/

namespace libredte\lib\Core\Sii\Dte\Documento\Renderer;

use libredte\lib\Core\Sii\Dte\Documento\AbstractDocumento;

/**
* Interfaz para los renderizadores de documentos tributarios electrónicos.
*/
interface RendererInterface
{
/**
* Renderiza el documento en el formato solicitado.
*
* @param AbstractDocumento $documento Documento a renderizar.
* @param array $options Opciones para el renderizado.
* @return string Datos del documento renderizado.
*/
public function render(
AbstractDocumento $documento,
array $options = []
): string;
}

0 comments on commit e6f4b5b

Please sign in to comment.