PccfToPcf覆盖

摘要:允许现有配方在PHP 7上运行,而不会导致不推荐的create_function()消息。
版本:2018-07-07
先决条件:PmWiki版本2.2.108(但请参见用法以下)。
状态:Beta
维护人员:卡盘G
许可证: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。