Signatur
Beschreibung
Swoole\Module ist eine interne Klasse der Swoole-Erweiterung für PHP, die ein einzelnes Erweiterungsmodul repräsentiert. Sie bietet eine objektorientierte Schnittstelle, um Informationen über geladene Swoole-Module abzurufen, ähnlich wie die PHP-eigene Klasse ReflectionExtension für PHP-Erweiterungen im Allgemeinen.
Swoole ist ein asynchrones, koroutinen-basiertes Netzwerkframework für PHP, das aus mehreren internen Modulen bestehen kann (z. B. für HTTP-Server, WebSocket, Coroutines usw.). Swoole\Module ermöglicht es, zur Laufzeit festzustellen, welche dieser Module aktiv sind und welche Fähigkeiten die aktuelle Swoole-Installation bietet.
Diese Klasse wird hauptsächlich für introspektive oder diagnostische Zwecke eingesetzt – etwa um vor der Nutzung bestimmter Swoole-Features zu prüfen, ob das zugehörige Modul tatsächlich vorhanden und aktiviert ist. Dies ist besonders in Umgebungen relevant, in denen Swoole modular kompiliert oder konfiguriert wurde.
Hinweis: Die genaue API und der Funktionsumfang von Swoole\Module hängen stark von der installierten Swoole-Version ab. Die Klasse ist nicht Teil des offiziellen PHP-Kerns und steht nur zur Verfügung, wenn die Swoole-Erweiterung installiert ist.
Beispiele
Prüfen ob ein Swoole-Modul vorhanden ist
<?php
// Prüft, ob das Swoole-Modul 'curl' geladen ist
if (class_exists('Swoole\Module')) {
$result = Swoole\Module::loaded('curl');
if ($result) {
echo "Swoole curl-Modul ist geladen." . PHP_EOL;
} else {
echo "Swoole curl-Modul ist NICHT geladen." . PHP_EOL;
}
} else {
echo "Swoole\Module ist nicht verfügbar." . PHP_EOL;
}
Swoole-Module-Verfügbarkeit bei der Anwendungsinitialisierung prüfen
<?php
// Beim Start einer Swoole-Anwendung sicherstellen,
// dass benötigte Module verfügbar sind
$requiredModules = ['openssl', 'curl'];
foreach ($requiredModules as $module) {
if (!Swoole\Module::loaded($module)) {
throw new RuntimeException(
"Erforderliches Swoole-Modul '{$module}' ist nicht geladen. " .
"Bitte Swoole mit '--enable-{$module}' neu kompilieren."
);
}
}
echo "Alle erforderlichen Swoole-Module sind verfügbar." . PHP_EOL;
// Wichtig · Fallstricke
Verfügbarkeit: Swoole\Module steht ausschließlich zur Verfügung, wenn die Swoole-PHP-Erweiterung installiert ist (pecl install swoole oder manuell kompiliert). Sie ist kein Bestandteil des PHP-Standardumfangs.
Versionsunterschiede: Die Klasse und ihre Methoden können je nach Swoole-Version (Swoole 4.x, 5.x, OpenSwoole) unterschiedlich implementiert sein oder unter abweichenden Namen existieren. Es empfiehlt sich, vor der Verwendung stets class_exists('Swoole\Module') zu prüfen.
Interne Klasse: Da Swoole\Module eine interne Swoole-Klasse ist, kann sie nicht durch normales PHP-Code subklassiert oder verändert werden. Die offizielle Dokumentation ist fragmentarisch – zur vollständigen API sollte die jeweilige Swoole-Quellcode-Dokumentation herangezogen werden.