# Instalación
Requisitos
PHP FacturaE requiere PHP 8.2 o superior.
Extensiones PHP necesarias:
ext-openssl— Necesaria para firmas digitales XAdES-EPES y manejo de certificadosext-dom— Necesaria para generación y manipulación de XML
Instalación vía Composer
composer require php-facturae/php-facturaeVerificar la instalación
<?php
require_once 'vendor/autoload.php';
use PhpFacturae\Invoice;use PhpFacturae\Party;
$invoice = Invoice::create('TEST-001') ->seller(Party::company('B12345678', 'Empresa Test')) ->buyer(Party::company('B87654321', 'Empresa Cliente')) ->line('Producto de prueba', price: 100.00, vat: 21);
echo "✓ PHP FacturaE está correctamente instalado!\n";echo "Número de factura: " . $invoice->getNumber() . "\n";Autoloading
PHP FacturaE usa autoloading PSR-4:
PhpFacturae\Invoicemapea asrc/Invoice.phpPhpFacturae\Partymapea asrc/Party.phpPhpFacturae\Entities\Linemapea asrc/Entities/Line.php
Dependencias de desarrollo
composer install --devIncluye PHPUnit 11.0+ y PHPStan 2.0+ (nivel 8).
# Ejecutar testsvendor/bin/phpunit
# Ejecutar análisis estáticovendor/bin/phpstan analyse src --level=8Solución de problemas
«ext-openssl is missing» — Instala php8.2-openssl (Ubuntu/Debian) o actívalo en php.ini (Windows).
«ext-dom is missing» — Instala php8.2-xml (Ubuntu/Debian).
«Class ‘PhpFacturae\Invoice’ not found» — Asegúrate de incluir vendor/autoload.php. Ejecuta composer dump-autoload si es necesario.
Opcional: Sellado de tiempo TSA
Para soporte de autoridad de sellado de tiempo (TSA), necesitarás ext-curl:
sudo apt-get install php8.2-curl