<?php
/**
 * Eigenstaendiger PSR-4-Autoloader fuer die gewaehlte Core-Kopie.
 *
 * Der Core darf sich nicht auf den Composer-Autoloader eines einzelnen Plugins
 * verlassen, weil mehrere Plugins verschiedene Core-Versionen buendeln koennen.
 * Dieser Autoloader bindet den Namespace `Hafenstudios\Core\` an genau dieses
 * `src/`-Verzeichnis (die vom Bootstrap gewaehlte hoechste Version).
 *
 * @package Hafenstudios\Core
 */

// Kein exit ausserhalb von WordPress (siehe bootstrap.php): return statt exit,
// damit CLI-Prozesse (Composer, PHPUnit) nicht beendet werden.
if ( ! defined( 'ABSPATH' ) ) {
	return;
}

spl_autoload_register(
	static function ( $class ) {
		$prefix   = 'Hafenstudios\\Core\\';
		$base_dir = __DIR__ . '/';

		$len = strlen( $prefix );
		if ( 0 !== strncmp( $prefix, $class, $len ) ) {
			return;
		}

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

		if ( is_readable( $file ) ) {
			require_once $file;
		}
	}
);
