Opis Closure 는 모든 클로저를 직렬화할 수 있는 래퍼를 제공하여 클로저 직렬화와 관련된 PHP의 한계를 극복하는 것을 목표로 하는 라이브러리입니다.
도서관의 주요 특징:
클로저 직렬화
임의 객체 직렬화
클로저 직렬화 또는 역직렬화에 eval
사용하지 않습니다.
클로저를 지원하는 모든 PHP 버전에서 작동합니다.
PHP 7 구문 지원
use()
에서 참조/가져온 모든 변수를 처리하고 적절한 직렬화를 위해 참조/가져온 모든 클로저를 자동으로 래핑합니다.
재귀적 폐쇄를 처리합니다.
__FILE__
, __DIR__
, __LINE__
, __NAMESPACE__
, __CLASS__
, __TRAIT__
, __METHOD__
및 __FUNCTION__
과 같은 마법 상수를 처리합니다.
클로저 내부에 사용된 모든 클래스 이름, 함수 이름 및 상수 이름을 자동으로 확인합니다.
#trackme
지시어를 사용하여 클로저의 상주 소스를 추적하세요.
간단하고 매우 빠른 파서
직렬화되지 않은 클로저를 실행할 때 발생할 수 있는 모든 오류나 예외를 포착하고 적절하게 처리할 수 있습니다.
이전에 직렬화 해제된 클로저라도 무제한으로 직렬화/직렬화 해제할 수 있습니다(이는 직렬화 해제에 eval()
사용되지 않기 때문에 가능합니다)
정적 클로저 처리
암호화 서명된 클로저 지원
직렬화된 클로저에 대한 정보를 제공할 수 있는 리플렉터를 제공합니다.
SuperClosure 라이브러리에 대한 분석기 제공
역직렬화 후 클로저가 작동하려면 클로저의 범위 및/또는 바인딩된 개체를 직렬화해야 하는 시기를 자동으로 감지합니다.
이 라이브러리에 대한 전체 문서는 여기에서 찾을 수 있습니다.
Opis Closure 는 MIT 라이선스(MIT)에 따라 라이선스가 부여됩니다.
PHP ^5.4 || ^7.0 || ^8.0
Opis Closure 는 Packagist에서 사용할 수 있으며 Composer를 사용하여 명령줄 인터페이스에서 설치할 수 있습니다.
작곡가는 작업/폐쇄를 요구합니다
또는 이를 composer.json
파일에 종속성으로 직접 참조할 수 있습니다.
{"require": {"opis/closure": "^3.5"} }
프로젝트가 PHP 5.3을 지원해야 하는 경우 Opis Closure 2.x
버전을 계속 사용할 수 있습니다. 그렇지 않고 제거/리팩터링된 클래스 또는 기능(CHANGELOG 참조) 중 하나를 사용하지 않는다고 가정하면 버전 3.x
로 마이그레이션하는 것은 단순히 composer.json
파일을 업데이트하는 문제입니다.
Opis Closure는 의미적 버전 관리 사양을 따릅니다.
클로저의 바인딩된 객체의 직렬화를 지원할 수 있도록 이 기능을 추가했습니다. 구현은 완벽과는 거리가 멀고 완벽하게 작동하도록 만드는 것은 정말 어렵습니다. 우리는 이 문제를 개선하기 위해 노력할 것이지만 아무것도 보장할 수는 없습니다. 따라서 OpisClosureserialize|unserialize
함수에 관한 우리의 조언은 주의해서 사용하라는 것입니다.