---
title: "Introducción"
description: "Dispatcher para la Biblioteca PHP"
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-10-08"
last_update: "2026-10-08"
time_minutes: 2
draft: false
unlisted: false
url: "https://core.libredte.cl/docs/dispatcher/introduccion"
---

# Dispatcher para la Biblioteca PHP

[![CI](https://github.com/libredte/libredte-lib-core-dispatcher/actions/workflows/ci.yml/badge.svg?branch=main&event=push)](https://github.com/libredte/libredte-lib-core-dispatcher/actions/workflows/ci.yml?query=branch%3Amain)
[![Licencia](https://poser.pugx.org/libredte/libredte-lib-core-dispatcher/license)](https://packagist.org/packages/libredte/libredte-lib-core-dispatcher)
[![Descargas totales](https://poser.pugx.org/libredte/libredte-lib-core-dispatcher/downloads)](https://packagist.org/packages/libredte/libredte-lib-core-dispatcher)

Conector que expone las operaciones de `libredte/libredte-lib-core`
de forma segura y agnóstica al transporte, usando
[`derafu/backbone-dispatcher`](https://www.derafu.dev/docs/core/backbone-dispatcher)
como base. Pensado como la capa intermedia entre LibreDTE y un
bridge hacia otro lenguaje, aunque no depende de ninguno en
particular. Repositorio:
[`libredte-lib-core-dispatcher`](https://github.com/libredte/libredte-lib-core-dispatcher).

> [!IMPORTANT] Importante
>
> El Dispatcher corre dentro de tu propio proceso PHP (lo llamas
> directo, no por red): tu software se convierte en un trabajo
> derivado y queda sujeto a los términos de la
> [licencia AGPL](https://www.derafu.dev/docs/lib/licencia), igual que si usaras la
> [Biblioteca PHP](https://www.derafu.dev/docs/lib) directamente. Si buscas integrarte sin
> ese efecto, revisa los [Servicios Web (API)](https://www.derafu.dev/docs/api), la
> [Imagen Docker (API)](https://www.derafu.dev/docs/docker-api) o la
> [Imagen Docker (Consola)](https://www.derafu.dev/docs/docker-console).

## Instalación

Se instala como cualquier paquete de Composer:

```shell
composer require libredte/libredte-lib-core-dispatcher
```

## Ejemplo

Un uso mínimo: arrancar el dispatcher, despachar una operación y
revisar si tuvo éxito.

```php
use libredte\lib\CoreDispatcher\Bootstrap;
use Derafu\BackboneDispatcher\ValueObject\OperationRequest;

// SafeDispatcherInterface.
$dispatcher = Bootstrap::boot();

$request = new OperationRequest(
    'billing',
    'identifier',
    'caf_loader',
    'load',
    ['xml' => base64_encode($cafXml)],
);

// Nunca lanza excepciones.
$result = $dispatcher->dispatch($request);

if ($result->isSuccess()) {
    // Ya serializado (array), listo para cruzar un límite de
    // proceso o lenguaje.
    $caf = $result->getValue();
} else {
    // ProblemDetail (RFC 7807-like).
    $problem = $result->getProblem();
}
```

> [!NOTE] Nota
>
> Revisa [Uso del Dispatcher](https://www.derafu.dev/docs/dispatcher/uso) para el detalle
> completo de `Bootstrap::boot()`, `OperationRequest` y el manejo de
> errores.

## Términos y condiciones de uso

Licenciado bajo AGPL-3.0+. Disponible en el archivo
[COPYING](https://github.com/libredte/libredte-lib-core-dispatcher/blob/main/COPYING).



---
Última actualización el 08/10/2026

