uopz
uopz (User Operations for Zend)
uopz는 User Operations for Zend의 약자예요. Zend 엔진의 기능을 런타임에 노출해서, 보통 컴파일·실행 시점에만 쓰는 내부 구조를 수정할 수 있게 해주는 확장입니다. 이 페이지에서는 개요를 살펴봐요.
본문
uopz — User Operations for Zend — 확장은 보통 컴파일 및 실행 시점에만 사용되던 Zend 엔진 기능을 노출합니다. 그래서 PHP 코드를 나타내는 내부 구조를 수정할 수 있고, 사용자 코드가 VM(가상 머신)과 상호작용할 수 있게 해줘요.
uopz가 지원하는 활동들은 모두 opcache와 호환된다는 점을 기억해 두세요. 다만 버전별 호환성에 주의가 필요한데, PECL uopz 6.1.1은 Xdebug 2.9.4 이상과 호환되지 않고, 그 이후 버전들은 Xdebug 2.9.4 미만과 호환되지 않습니다.
주요 함수들은 다음과 같아요.
- 함수·클래스 수정 —
uopz_add_function,uopz_del_function,uopz_copy,uopz_compose,uopz_extend,uopz_implement,uopz_overload,uopz_redefine,uopz_rename,uopz_undefine - 리턴 값·모킹 —
uopz_set_return,uopz_unset_return,uopz_get_return,uopz_set_mock,uopz_unset_mock,uopz_get_mock - 훅(hook) —
uopz_set_hook,uopz_unset_hook,uopz_get_hook - 프로퍼티·static —
uopz_set_property,uopz_get_property,uopz_set_static,uopz_get_static - 백업·복원 —
uopz_backup,uopz_restore,uopz_delete - 기타 —
uopz_allow_exit,uopz_flags,uopz_function,uopz_get_exit_status