生命周期钩子

PHP提供了几个生命周期事件,这些扩展可以用来执行常见的初始化或关闭任务。 通常,Zephir在这些事件中自己的钩子会覆盖所有设置,并删除您需要的扩展,但是如果您发现需要做更多的事情,可以使用一些选项将您自己的代码传递到这些相同的钩子中。

考虑下面的图表:

PHP进程/请求生命周期

生命周期钩子注册在config.json。 如上图所示,有四种生命周期钩子 — globalsinitializersdestructorsinfo。 Each of these has its own corresponding root-level setting in the configuration, and both globals and info have their own chapters. 本章将介绍另外两种设置。

每个钩子在config.json文件是一个对象数组,其本身本质上是include/code对。 include值,如果还没有,则会拉入一个给定的C头文件,这样code就可以访问它的内容。 code值是由钩的逻辑本身, 虽然在技术上你可以把任何有效的C, 它是 强烈建议把逻辑超过一个或两个行到一个单独的C源文件(比如一个拉连同你的include d头文件), 并使用一个单行的函数调用。