PHP Classes

File: doc/extensiones/extensiones.md

Recommend this page to a friend!
  Classes of José Miguel Moreno   Facturae PHP   doc/extensiones/extensiones.md   Download  
File: doc/extensiones/extensiones.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: Facturae PHP
Generate XML electronic bills paid in Spain
Author: By
Last change: Arreglado namespace en documentación

Corregido typo en ejemplo de extensión de terceros
Actualizada versión

v1.4.2 --> v1.5.0
Documentación de extensiones

Añadida documentación para extensiones de terceros (externas).
Date: 3 years ago
Size: 2,301 bytes
 

Contents

Class file image Download

title: Extensiones nav_order: 6 has_children: true permalink: /extensiones/

Extensiones

Las extensiones de formato son complementos que añaden funcionalidad al formato FacturaE. Similarmente, Facturae-PHP dispone de una interfaz propia para gestionar estas extensiones.

Una extensión puede ser accedida desde cualquier factura a través del método $fac->getExtension() y cada extensión dispone de su propio set de métodos, estado interno y funcionalidad.

Extensiones de terceros

Además de las extensiones incluidas con Facturae-PHP, desde la versión 1.5.0 es posible utilizar clases externas como extensiones. Esto permite a las empresas añadir lógica de negocio propia a esta librería sin la obligación de compartir el código fuente bajo licencia MIT.

Para usar una extensión de terceros se deberá llamar al mismo método de antes con el nombre de la clase como parámetro:

$awesome = $fac->getExtension(AwesomeExtension::class);

Una extensión de Facturae-PHP tiene un aspecto similar a este:

class AwesomeExtension extends \josemmo\Facturae\Extensions\FacturaeExtension {
  // NOTA: todos los métodos de este ejemplo son opcionales

  public function __getAdditionalData() {
    // Devuelve un string con el XML a inyectar en el bloque
    // "AdditionalData/Extensions" de un documento FacturaE.
  }

  public function __onBeforeExport() {
    // Lógica a ejecutar antes de exportar (generar el XML)
    // de una factura. Indicado para realizar acciones sobre
    // la instancia de la factura, que se puede obtener a
    // través del método `$this->getInvoice()`.
  }

  public function __onBeforeSign($xml) {
    // Lógica a ejecutar cuando el XML de la factura ya está
    // generado pero todavía no ha sido firmado.
    // Útil para modificar el XML antes de firmarlo, que
    // recibe por parámetro.
    return $xml;
  }

  public function __onAfterSign($xml) {
    // Lógica a ejecutar después de haber firmado el XML de la
    // factura y antes de ser devuelto por el método `export()`.
    // Útil para modificar el XML después de firmarlo, que
    // recibe por parámetro.
    return $xml;
  }

  // Otros métodos propios de la clase

}