在PHP中模拟不同的服务器日期时间

前端之家收集整理的这篇文章主要介绍了在PHP中模拟不同的服务器日期时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有可能让 PHP应用程序认为服务器日期时间被大的可配置量(如6个月前或6个月后)所抵消?

背景:
我们有一个处理体育赛事的网络应用程序,现在我们希望在我们的开发环境中运行它,使网站认为它是2009年秋季而不是2010年夏季.那是因为我们拥有去年的优秀数据秋季和今年的季节尚未开始,因此使用大量实际数据测试新功能将更容易,而不是编制2010年的新测试数据.

我们不想实际更改服务器的日期和时间.当前最佳选项似乎是将代码中的所有date()调用更改为my_date(),然后让my_date()将偏移量添加到实际系统日期.

看起来这个功能在其他人的类似情况下会很有用,所以我很好奇是否有一种更简单的方法可以通过一些配置参数全局完成,而无需修改代码.我做了RTM.

您可以在开发服务器上安装 Runkit并重新定义所有必需的dateTime函数以返回修改后的值,例如
if(APP_ENV === 'testing') {
    include 'datetime-monkeypatches.PHP';
}

其中datetime-monkeypatches.PHP将包含所需功能的补丁.这样您就不必更改实际代码.这就像在原始函数中使用适配器一样,只要将它们保存在单独的文件中,它就可以保持可维护状态.

另一种选择是使用http://antecedent.github.io/patchwork

Patchwork is a PHP library that makes it possible to redefine user-defined functions and methods at runtime,loosely replicating the functionality runkit_function_redefine in pure PHP 5.3 code,which,among other things,enables you to replace static and private methods with test doubles.

原文链接:https://www.f2er.com/php/133804.html

猜你在找的PHP相关文章