所以,我在开发PHP应用程序时使用了很多JSON。函数返回json字符串或者很难知道它们包含什么内容,并且将文档保持最新是非常耗时的,特别是如果它发生了很大的变化。
实现这样的事情会是个好主意:
而不是使用return $x
我会实现一个名为_return
的函数,它会像:{/ p>
function _return($obj)
{
var_dump(debug_backtrace());
return $obj;
}
它会做更多的事情,它会在堆栈跟踪中查找函数的名称,然后我可以将此代码保存为$ obj类型到适当的文件,并且它们可以用于创建自动更新文档!
这会是一个好主意吗?在每次返回时执行debug_backtrace()可能会耗费时间吗?
我会像:
一样使用它class T
{
public function __constructor()
{
}
public function first()
{
return $this->second();
}
public function second()
{
$array = array('david' => 'value', 'test' => 'oj');
return _return($array);
}
}
function _return($obj)
{
var_dump(debug_backtrace());
return $obj;
}
$t = new T();
$t->first();
答案 0 :(得分:0)
您的代码有几个缺点。
首先,回溯可以变得巨大 - 这就是函数debug_print_backtrace()
的原因。如果接近内存限制,则将回溯推送到随后被转储的变量可以取消该脚本。
第二句:一句话:为什么不在你的“第一”方法中_return
?
第三:如果你有var_dump的东西,你将销毁任何可能被最近的javascript库使用和解析的JSON输出。
第四:如果你不知道当你收到某个URL的请求时会调用哪些函数,那么文档就不应该受到责备,但是从URL到执行函数的非显而易见的映射系统是不可能的
第五:调试日志记录。
第六:输出清理(它是输入验证的对应物)。
第七:有类似JSON Schema验证的东西。例如,请查看http://davidwalsh.name/json-validation。这通过定义数据结构来反过来,但如果您可以将现实与目标结果进行比较并检测任何差异,至少您知道在哪里更新某些内容。