PHP用户定义';包装纸';功能

PHP用户定义';包装纸';功能,php,Php,我希望创建一个'wrapper'函数集,在其中我在代码之前调用函数,然后在代码之后再次调用函数,以便让它隔离并对包含的代码执行操作 具体来说,我正在为自定义内容管理引擎创建一个块缓存工具,该工具将允许模板开发人员指定可以和不能在服务器端缓存的特定代码区域 例如: <?php echo "test1"; echo "test2"; dontCacheStart(); echo "test3"; echo "test4"; dontCacheEnd(); echo "test5"; ?

我希望创建一个'wrapper'函数集,在其中我在代码之前调用函数,然后在代码之后再次调用函数,以便让它隔离并对包含的代码执行操作

具体来说,我正在为自定义内容管理引擎创建一个块缓存工具,该工具将允许模板开发人员指定可以和不能在服务器端缓存的特定代码区域

例如:

<?php
echo "test1";
echo "test2";

dontCacheStart();

echo "test3";
echo "test4";

dontCacheEnd();

echo "test5";
?>

将在服务器上生成一个文件

test1test2<?php
echo "test3";
echo "test4";
?>test5
test1test2test5
然后在后续页面请求中访问,以加快处理速度(直到过期或被删除)

我拥有所有其他可操作的功能,但不知道如何创建包装标签


提前感谢您的建议

您可以使用输出缓冲区捕获某些输出,然后调用函数缓存该输出

您可以使用输出缓冲区捕获某些输出,然后调用函数缓存该输出

使用已经功能完善且经过全面测试的模板引擎是不可能的吗?如果不是,您可能想看看Smarty,它已经支持缓存:您可以使用
goto
(恐怖!)实现它。是否使用已经运行且经过全面测试的模板引擎?如果不是,你可能想看看Smarty,它已经支持缓存:你可以使用
goto
(恐怖!)来实现它。是的,ob是我开始这项冒险的地方,因为页面的绝大多数都可以被“缓存”(立即处理并存储处理代码的结果)虽然带有“包装器”的区域不会被缓存(存储为原始代码),PHP开始/结束标记会根据需要放置到位,以及我想要执行的调试代码,但我需要的不仅仅是ob标记。这就是为什么我在寻找一种方法来创建自己的包装类。是的,ob是我开始这项冒险的地方,因为页面的绝大多数都有资格被“缓存”(立即处理并存储处理代码的结果),而带有“包装”的区域不会被缓存(存储为原始代码)随着PHP开始/结束标记按要求放置到位,以及我想要执行的调试代码,我需要的不仅仅是ob标记。这就是为什么我在寻找一种方法来创建自己的包装器类。