背景:
我们有一个处理体育赛事的网络应用程序,现在我们希望在我们的开发环境中运行它,使网站认为它是2009年秋季而不是2010年夏季.那是因为我们拥有去年的优秀数据秋季和今年的季节尚未开始,因此使用大量实际数据测试新功能将更容易,而不是编制2010年的新测试数据.
我们不想实际更改服务器的日期和时间.当前最佳选项似乎是将代码中的所有date()调用更改为my_date(),然后让my_date()将偏移量添加到实际系统日期.
看起来这个功能在其他人的类似情况下会很有用,所以我很好奇是否有一种更简单的方法可以通过一些配置参数全局完成,而无需修改代码.我做了RTM.
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.jb51.cc/php/133804.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。