<?php
/**
 * Einfacher Autoloader für die mitgelieferten Bibliotheken (Dompdf + Abhängigkeiten).
 * Ordnet Namespaces den jeweiligen lib-Verzeichnissen zu, damit keine
 * Composer-Installation auf dem Server nötig ist.
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

spl_autoload_register(
    function ( $class ) {
        $base = AG_PLUGIN_DIR . 'lib/';

        // Klassen außerhalb der PSR-4-Struktur (Composer löst diese via Classmap).
        $classmap = array(
            'Dompdf\\Cpdf' => $base . 'dompdf/lib/Cpdf.php',
        );
        if ( isset( $classmap[ $class ] ) ) {
            if ( file_exists( $classmap[ $class ] ) ) {
                require $classmap[ $class ];
            }
            return;
        }

        // Namespace-Präfix => Verzeichnis
        $prefixes = array(
            'Dompdf\\'         => $base . 'dompdf/src/',
            'FontLib\\'        => $base . 'php-font-lib/src/FontLib/',
            'Svg\\'            => $base . 'php-svg-lib/src/Svg/',
            'Masterminds\\'    => $base . 'html5/src/',
            'Sabberworm\\CSS\\' => $base . 'css-parser/src/',
        );

        foreach ( $prefixes as $prefix => $dir ) {
            $len = strlen( $prefix );
            if ( 0 !== strncmp( $prefix, $class, $len ) ) {
                continue;
            }

            $relative = substr( $class, $len );
            $file      = $dir . str_replace( '\\', '/', $relative ) . '.php';

            if ( file_exists( $file ) ) {
                require $file;
            }
            return;
        }
    }
);
