quizlet/fb_intercept_polyfill

该包最新版本(v2.0.1)没有可用的许可证信息。

用于在 hhvm 3.24 -> 4.present 版本中使用 fb_intercept 的 polyfill

v2.0.1 2021-10-27 19:47 UTC

README

用于在 hhvm 3.24 -> 4.present 版本中使用 fb_intercept 的 polyfill

为什么你不需要这个 polyfill。这个 polyfill 桥接了在过渡期前理解 inout 而不理解 &$references 的 hhvm 和不理解 &$references 的 hhvm 之间的差距。《HH\Lib\Ref》是一个不需要运行时支持的类,因此它可以作为中介。如果你的 hhvm 不在 &$references 的过渡期,但它有 HH\Lib\Ref 支持,你可能想使用这个 polyfill。

限制

fb_intercept() 是一个内置函数。这给了它一个超级能力,就是它本身不能被拦截。polyfill 是用户空间代码,因此它可以被拦截。因此,你不能使用空字符串 ''(空字符串)作为通配拦截键,因为你将拦截对 polyfill 本身的调用。这使得在此之后调用 fb_intercept() 变得不可能。如果你传递通配键给 polyfill,它会抛出异常,告诉你这不被支持。如果你故意按名称拦截 polyfill,你将无法恢复它。所以不要这样做。😉

为库作者提供的安装说明

版本 v1.x.x 和 v2.x.x 将保留 API 互操作性作为承诺。v1 只能在 hhvm 4.28 及以下版本上运行,v2 只能在 4.20 及以上版本上运行。公共 API 没有改变,只有 hhvm 版本要求和一些实现细节。

因此我们强烈建议您为此库设置版本约束为 "^1|^2"。这是在所有 hhvm 版本上可安装的必要条件。

不打算在旧版 hhvm 版本上运行的此库用户可以设置 "^2" 约束,但 "^1|^2" 约束也会适用于您。