La descripción de Cierre es una biblioteca que tiene como objetivo superar las limitaciones de PHP con respecto a la serialización de cierres al proporcionar un contenedor que hará que todos los cierres sean serializables.
Las características clave de la biblioteca:
Serializar cualquier cierre
Serializar objetos arbitrarios
No utiliza eval
para la serialización o deserialización de cierre
Funciona con cualquier versión de PHP que admita cierres.
Soporta la sintaxis PHP 7
Maneja todas las variables referenciadas/importadas en use()
y envuelve automáticamente todos los cierres referenciados/importados para una serialización adecuada
Maneja cierres recursivos
Maneja constantes mágicas como __FILE__
, __DIR__
, __LINE__
, __NAMESPACE__
, __CLASS__
, __TRAIT__
, __METHOD__
y __FUNCTION__
.
Resuelve automáticamente todos los nombres de clases, nombres de funciones y nombres de constantes utilizados dentro del cierre.
Seguimiento de la fuente residente del cierre mediante la directiva #trackme
Analizador simple y muy rápido.
Cualquier error o excepción que pueda ocurrir al ejecutar un cierre no serializado se puede detectar y tratar adecuadamente.
Puede serializar/deserializar cualquier cierre ilimitadamente, incluso aquellos que previamente no fueron serializados (esto es posible porque eval()
no se usa para deserializar)
Maneja cierres estáticos
Admite cierres firmados criptográficamente
Proporciona un reflector que puede brindarle información sobre el cierre serializado.
Proporciona un analizador para la biblioteca SuperClosure
Detecta automáticamente cuándo es necesario serializar el alcance y/o el objeto vinculado de un cierre para que el cierre funcione después de la deserialización.
La documentación completa de esta biblioteca se puede encontrar aquí.
Opis Closing tiene la licencia MIT License (MIT).
PHP^5.4 || ^7.0 || ^8.0
La descripción de Cierre está disponible en Packagist y se puede instalar desde una interfaz de línea de comandos usando Composer.
el compositor requiere descripción/cierre
O puede hacer referencia a él directamente en su archivo composer.json
como una dependencia
{"requerir": {"opinión/cierre": "^3.5"} }
Si su proyecto necesita ser compatible con PHP 5.3, puede continuar usando la versión 2.x
de Opis Closure . De lo contrario, suponiendo que no esté utilizando una de las clases o características eliminadas/refactorizadas (consulte CHANGELOG), migrar a la versión 3.x
es simplemente una cuestión de actualizar su archivo composer.json
.
La descripción de Closing sigue las especificaciones de versiones semánticas.
Hemos agregado esta característica para poder admitir la serialización del objeto vinculado de un cierre. La implementación está lejos de ser perfecta y es realmente difícil lograr que funcione sin problemas. Intentaremos mejorar esto, pero no podemos garantizar nada. Entonces, nuestro consejo con respecto a las funciones OpisClosureserialize|unserialize
es usarlas con precaución.