説明 Closureは、すべてのクロージャをシリアル化可能にするラッパーを提供することで、クロージャのシリアル化に関する PHP の制限を克服することを目的としたライブラリです。
ライブラリの主な機能:
クロージャをシリアル化する
任意のオブジェクトをシリアル化する
クロージャーのシリアル化またはシリアル化解除にeval
使用しません。
クロージャをサポートするすべての PHP バージョンで動作します
PHP 7 構文をサポート
use()
で参照/インポートされたすべての変数を処理し、適切なシリアル化のために参照/インポートされたすべてのクロージャを自動的にラップします。
再帰的クロージャを処理します
__FILE__
、 __DIR__
、 __LINE__
、 __NAMESPACE__
、 __CLASS__
、 __TRAIT__
、 __METHOD__
、 __FUNCTION__
などのマジック定数を処理します。
クロージャ内で使用されるすべてのクラス名、関数名、定数名を自動的に解決します。
#trackme
ディレクティブを使用して、クロージャの常駐ソースを追跡します
シンプルで非常に高速なパーサー
シリアル化されていないクロージャの実行時に発生する可能性のあるエラーや例外は、捕捉して適切に処理できます。
以前にシリアル化されていないクロージャであっても、無制限にシリアル化/シリアル化解除できます (これは、シリアル化解除にeval()
が使用されないため可能です)
静的クロージャを処理します
暗号化署名されたクロージャをサポート
シリアル化されたクロージャーに関する情報を提供できるリフレクターを提供します。
SuperClosureライブラリのアナライザーを提供します
逆シリアル化後にクロージャが機能するために、クロージャのスコープやバインドされたオブジェクトをシリアル化する必要がある時期を自動的に検出します。
このライブラリの完全なドキュメントはここにあります。
説明 Closureは MIT ライセンス (MIT) に基づいてライセンスされています。
PHP ^5.4 || ^7.0 || ^8.0
説明 Closure はPackagist で入手でき、Composer を使用してコマンド ライン インターフェイスからインストールできます。
作曲家には命令/クロージャが必要です
または、 composer.json
ファイル内で依存関係として直接参照することもできます。
{"require": {"opis/closure": "^3.5"} }
プロジェクトが PHP 5.3 をサポートする必要がある場合は、 Opis Closureの2.x
バージョンを引き続き使用できます。それ以外の場合は、削除/リファクタリングされたクラスや機能を使用していないと仮定すると (CHANGELOG を参照)、バージョン3.x
への移行は、 composer.json
ファイルを更新するだけです。
説明 Closure はセマンティック バージョニング仕様に従います。
クロージャのバインドされたオブジェクトのシリアル化をサポートできるようにするために、この機能を追加しました。実装は完璧とは程遠く、完璧に動作させるのは非常に困難です。改善に努めますが、保証はできません。したがって、 OpisClosureserialize|unserialize
関数に関するアドバイスは、慎重に使用することです。