Start · Sprachen · PHP · Referenz · enchant_broker_init

enchant_broker_init

Funktion

Erzeugt ein neues Enchant-Broker-Objekt, das als zentrale Schnittstelle zur Rechtschreibprüfungs-Bibliothek dient.

seit PHP 5.3.0 Kategorie: string

Signatur

enchant_broker_init(): EnchantBroker|false

Beschreibung

enchant_broker_init() initialisiert einen neuen Enchant-Broker, der als übergeordnetes Verwaltungsobjekt für alle weiteren Enchant-Operationen benötigt wird. Der Broker stellt den Zugang zu den installierten Rechtschreibprüfungs-Backends (z. B. Aspell, Hunspell, Ispell) bereit.

Sobald ein Broker erstellt wurde, kann über ihn ein Wörterbuch für eine bestimmte Sprache angefordert werden. Alle Wörterbücher, die über den Broker geöffnet werden, sollten vor der Freigabe des Brokers explizit mit enchant_broker_free_dict() geschlossen werden. Der Broker selbst wird anschließend mit enchant_broker_free() freigegeben.

Ab PHP 8.0 gibt die Funktion ein EnchantBroker-Objekt zurück. In früheren Versionen wurde eine Ressource zurückgegeben. Durch den Einsatz des Brokers lassen sich mehrsprachige Rechtschreibprüfungen in einer Anwendung effizient verwalten.

Rückgabewert

Typ
EnchantBroker|false
Beschreibung
Gibt bei Erfolg ein EnchantBroker-Objekt zurück (vor PHP 8.0 eine Ressource). Im Fehlerfall wird false zurückgegeben.

Beispiele

Broker initialisieren und Wörterbuch laden

<?php
// Broker initialisieren
$broker = enchant_broker_init();

if ($broker === false) {
    die('Enchant-Broker konnte nicht initialisiert werden.');
}

// Prüfen ob ein Wörterbuch für Deutsch verfügbar ist
if (enchant_broker_dict_exists($broker, 'de_DE')) {
    $dict = enchant_broker_request_dict($broker, 'de_DE');

    // Wort prüfen
    $word = 'Rechtschreibung';
    if (enchant_dict_check($dict, $word)) {
        echo "'$word' ist korrekt geschrieben.\n";
    } else {
        echo "'$word' ist NICHT korrekt geschrieben.\n";
        $suggestions = enchant_dict_suggest($dict, $word);
        echo 'Vorschläge: ' . implode(', ', $suggestions) . "\n";
    }

    // Wörterbuch freigeben
    enchant_broker_free_dict($dict);
} else {
    echo 'Kein deutsches Wörterbuch gefunden.';
}

// Broker freigeben
enchant_broker_free($broker);
'Rechtschreibung' ist korrekt geschrieben.

Alle verfügbaren Wörterbücher auflisten

<?php
$broker = enchant_broker_init();

if ($broker === false) {
    die('Broker-Initialisierung fehlgeschlagen.');
}

// Liste aller verfügbaren Wörterbücher abrufen
$dicts = enchant_broker_list_dicts($broker);

foreach ($dicts as $dict) {
    echo sprintf(
        "Sprache: %s | Name: %s | Beschreibung: %s\n",
        $dict['lang_tag'],
        $dict['provider_name'],
        $dict['provider_desc']
    );
}

enchant_broker_free($broker);
Sprache: de_DE | Name: hunspell | Beschreibung: Hunspell Provider Sprache: en_US | Name: hunspell | Beschreibung: Hunspell Provider

// Wichtig · Fallstricke

Ressourcen vs. Objekte: Vor PHP 8.0 lieferte enchant_broker_init() eine interne Ressource zurück. Ab PHP 8.0 wird ein EnchantBroker-Objekt zurückgegeben. Code, der auf den Typ des Rückgabewerts prüft, sollte entsprechend angepasst werden.

Speicherverwaltung: Es ist wichtig, alle geöffneten Wörterbücher mit enchant_broker_free_dict() zu schließen, bevor der Broker mit enchant_broker_free() freigegeben wird, um Speicherlecks zu vermeiden. Ab PHP 8.0 übernimmt die Garbage Collection dies automatisch beim Zerstören des Objekts.

Voraussetzung: Die PHP-Enchant-Erweiterung (ext-enchant) sowie mindestens ein Rechtschreibprüfungs-Backend (z. B. Hunspell) müssen auf dem System installiert sein.