Start · Sprachen · PHP · Referenz · PSpell\Config

PSpell\Config

Klasse

Opake Klasse, die ab PHP 8.1.0 die frühere pspell-Konfigurationsressource (<code>pspell config</code>) als typsicheres Objekt ersetzt.

seit PHP 8.1.0 Kategorie: string

Signatur

class PSpell\Config

Beschreibung

PSpell\Config ist eine vollständig opake Wrapper-Klasse, die intern eine pspell-Konfiguration repräsentiert. Sie besitzt keine öffentlichen Eigenschaften oder Methoden, die direkt aufrufbar wären. Stattdessen wird eine Instanz dieser Klasse von den Funktionen pspell_config_create() zurückgegeben und anschließend an weitere pspell_config_*()-Funktionen übergeben, um die Konfiguration anzupassen, bevor mit pspell_new_config() ein fertiges PSpell\Dictionary erzeugt wird.

Vor PHP 8.1.0 wurden pspell-Konfigurationen als einfache Ressourcen (resource) behandelt. Mit PHP 8.1.0 wurden diese Ressourcen durch Objekte dieses Typs ersetzt, um die PHP-interne Ressourcenverwaltung zu modernisieren und Typsicherheit zu ermöglichen. Bestehender Code, der den Rückgabewert lediglich an andere pspell-Funktionen weiterreicht, funktioniert ohne Anpassung weiter.

Typische Nutzung: Zunächst wird mit pspell_config_create() ein PSpell\Config-Objekt erzeugt, danach werden Optionen wie persönliche Wortlisten (pspell_config_personal()), Ersatzvorschläge-Modus (pspell_config_mode()) oder Zeichencodierung (pspell_config_runtogether()) gesetzt, und abschließend wird das konfigurierte Objekt an pspell_new_config() übergeben.

Hinweis: Die pspell-Extension und damit diese Klasse sind nur verfügbar, wenn PHP mit Aspell/pspell-Unterstützung kompiliert wurde (--with-pspell). In modernen Projekten werden Rechtschreibprüfungs-Bibliotheken wie php-spellchecker oft bevorzugt.

Beispiele

Konfiguration erstellen und Dictionary öffnen

<?php
// PSpell\Config-Objekt für Deutsch erstellen
$config = pspell_config_create('de');

// Modus: Viele Vorschläge liefern
pspell_config_mode($config, PSPELL_FAST);

// Persönliche Wortliste einbinden
pspell_config_personal($config, '/tmp/my_wordlist.pws');

// Dictionary mit der fertigen Konfiguration öffnen
$dictionary = pspell_new_config($config);

// Wort prüfen
$word = 'Programierer'; // absichtlich falsch
if (!pspell_check($dictionary, $word)) {
    $suggestions = pspell_suggest($dictionary, $word);
    echo "'$word' unbekannt. Vorschläge: " . implode(', ', $suggestions) . PHP_EOL;
} else {
    echo "'$word' ist korrekt." . PHP_EOL;
}
'Programierer' unbekannt. Vorschläge: Programmierer, ...

Typ-Überprüfung des Konfigurationsobjekts

<?php
$config = pspell_config_create('en');

// Ab PHP 8.1.0 ist $config eine Instanz von PSpell\Config
if ($config instanceof PSpell\Config) {
    echo 'Konfigurationsobjekt erfolgreich erstellt.' . PHP_EOL;
    var_dump($config);
} else {
    echo 'Fehler beim Erstellen der Konfiguration.' . PHP_EOL;
}
Konfigurationsobjekt erfolgreich erstellt. object(PSpell\Config)#1 (0) {}

// Wichtig · Fallstricke

Abwärtskompatibilität: Vor PHP 8.1.0 lieferten die pspell-Funktionen eine resource. Code, der mit is_resource() auf das Ergebnis prüfte, muss für PHP 8.1+ auf instanceof PSpell\Config umgestellt werden.

Extension-Verfügbarkeit: Die pspell-Extension ist nicht standardmäßig aktiv. Sie erfordert die Systembibliothek libaspell sowie den PHP-Kompilierungsschalter --with-pspell. Auf vielen gemeinsam genutzten Hostings fehlt diese Extension.

Deprecation-Hinweis: Die gesamte pspell-Extension gilt als wenig gepflegt; für neue Projekte empfiehlt es sich, Alternativen wie externe Rechtschreibdienste oder die php-spellchecker-Bibliothek zu evaluieren.