摘要:允许现有配方在PHP 7上运行,而不会导致不推荐的create_function()消息。
版本:2018-07-07
先决条件:PmWiki版本2.2.108(但请参见用法以下)。
状态:Beta
许可证:GPL
这个食谱回答的问题
如何在不获取“create_function()已弃用”警告?
描述
这个pccf2pcf.php型Δ脚本绕过了PHP的使用创建函数()
通过调用PCCF、PPRE和Markup_e。它还可以显示这些内容的摘要呼叫秒表.
安装
下载并安装pccf2pcf.php型Δ到你的食谱目录。
在config.php文件中添加:
$EnablePCF=1;#对create_function()的规避调用#由PCCF、PPRE和Markup_e
和/或:
$EnablePCF警告=1;#显示通话摘要#至PCCF、PPRE和Markup_e$PCFRootPat=“%^.*?”/您的文档root/(.*)%’;#导致PCF警告放弃路径您的文档root#缩短显示的文件名
同时添加:
包含一次(“$农场D
/食谱/pccf2pcf.php”);
您需要在对PCCF()的任何调用之前添加上述内容,这些调用可能发生在config.php或包含的文件中,因此最好是将其添加到farmconfig.pph或config.php.的顶部附近。
用法
您可以启用一个或两个PCF和PCF警告:
- 启用PCF可以避免PCCF、PPRE和Markup_e调用PHP的
创建函数()
,从而消除“不推荐使用的create_function()
“条消息并允许食谱在未来的PHP版本中工作。 - 启用PCFWarn会导致对PCCF、PPRE和Markup_e的调用摘要添加到显示在页面底部的StopWatch中。它启用StopWatch的显示,因此无需按照中“启用秒表”下的说明操作食谱。秒表.
此配方使用了PmWiki 2.2.108中新增的$PCCFOverrideFunction功能。然而,通过修补PmWiki.php,它可以在较旧的PmWiki版本中使用。这是不推荐,但如果必须的话,这里有更改。
在pmwiki.php中,在代码之后:
函数PCCF($code,$template=“default”,$args=“$m”){全局$CallbackFnTemplates,$CallbakFunctions;
插入:
全局$PCCFOverrideFunction;if($PCCFOverrideFunction和is_callable($PCCVoverridefunction))return$PCCFOverrideFunction($code,$template,$args);
笔记
此脚本使用PHP评估()
要模拟的函数创建函数()
.
评估()
被认为是不安全的,但可能不再如此比创建函数()
,它使用评估()
内部。评估()
可能在将来某个时间被弃用。
出于这些原因,这应该被视为一种临时解决方案。然而,请注意,启用PCFWarn但是不PCF将显示继续使用时的诊断信息创建函数()
而不是评估()
。这将很有用用于在升级到PHP 7之前确定未来的问题。
更改日志/发行说明
- 2018年07月07日
- 首次发布。
评论
请参阅上的讨论PccfToPcf跨线桥?
用户注释?:如果您使用、使用或查看此配方,您可以添加您的姓名这些统计数据显示在Cookbook列表中,将帮助新手浏览wiki。