Opis Closure ist eine Bibliothek, die darauf abzielt, die Einschränkungen von PHP hinsichtlich der Serialisierung von Schließungen zu überwinden, indem sie einen Wrapper bereitstellt, der alle Schließungen serialisierbar macht.
Die wichtigsten Funktionen der Bibliothek:
Serialisieren Sie alle Schließungen
Serialisieren Sie beliebige Objekte
Verwendet eval
nicht für die Serialisierung oder Deserialisierung von Schließungen
Funktioniert mit jeder PHP-Version, die Schließungen unterstützt
Unterstützt PHP 7-Syntax
Verarbeitet alle in use()
referenzierten/importierten Variablen und umschließt automatisch alle referenzierten/importierten Abschlüsse für eine ordnungsgemäße Serialisierung
Behandelt rekursive Schließungen
Behandelt magische Konstanten wie __FILE__
, __DIR__
, __LINE__
, __NAMESPACE__
, __CLASS__
, __TRAIT__
, __METHOD__
und __FUNCTION__
.
Löst automatisch alle im Abschluss verwendeten Klassennamen, Funktionsnamen und Konstantennamen auf
Verfolgen Sie die aktuelle Quelle der Schließung mithilfe der #trackme
Direktive
Einfacher und sehr schneller Parser
Jeder Fehler oder jede Ausnahme, die beim Ausführen eines unserialisierten Abschlusses auftreten kann, kann abgefangen und ordnungsgemäß behandelt werden
Sie können jeden Abschluss unbegrenzt oft serialisieren/unserialisieren, auch solche, die zuvor deserialisiert wurden (dies ist möglich, weil eval()
nicht für die Deserialisierung verwendet wird).
Behandelt statische Schließungen
Unterstützt kryptografisch signierte Schließungen
Stellt einen Reflektor bereit, der Ihnen Informationen über den serialisierten Verschluss geben kann
Stellt einen Analysator für die SuperClosure -Bibliothek bereit
Erkennt automatisch, wann der Bereich und/oder das gebundene Objekt eines Abschlusses serialisiert werden muss, damit der Abschluss nach der Deserialisierung funktioniert
Die vollständige Dokumentation dieser Bibliothek finden Sie hier.
Opis Closure ist unter der MIT-Lizenz (MIT) lizenziert.
PHP ^5.4 || ^7,0 || ^8.0
Opis Closure ist auf Packagist verfügbar und kann mithilfe von Composer über eine Befehlszeilenschnittstelle installiert werden.
Komponist benötigt Opis/Abschluss
Oder Sie können es direkt als Abhängigkeit in Ihrer Datei composer.json
referenzieren
{"require": {"opis/closure": "^3.5"} }
Wenn Ihr Projekt PHP 5.3 unterstützen muss, können Sie weiterhin die 2.x
Version von Opis Closure verwenden. Andernfalls, vorausgesetzt, Sie verwenden keine der entfernten/umgestalteten Klassen oder Funktionen (siehe CHANGELOG), ist die Migration auf Version 3.x
lediglich eine Frage der Aktualisierung Ihrer composer.json
Datei.
Opis Closure folgt semantischen Versionierungsspezifikationen.
Wir haben diese Funktion hinzugefügt, um die Serialisierung des gebundenen Objekts eines Verschlusses unterstützen zu können. Die Implementierung ist alles andere als perfekt und es ist wirklich schwierig, sie fehlerfrei zum Laufen zu bringen. Wir werden versuchen, dies zu verbessern, können jedoch nichts garantieren. Daher raten wir zu den OpisClosureserialize|unserialize
-Funktionen, sie mit Vorsicht zu verwenden.