如何调试我的回调脚本?
我有一个处理杂货CRUD的deal_management函数
我有一个
callback_after_insert( array( $this, ‘insert_coupon_codes’ ) );
因为数据库中的插入在我的函数insert_coupon_codes
中不起作用,所以我无法知道或查看我的SQL。
是否有任何功能可以在回调函数中调试我的php脚本而不会有任何黑客攻击?
我做了print_r()
和var_dump()
,但这些似乎不适用于回调函数。
答案 0 :(得分:6)
首先确保call_user_func与您的函数一起正常工作。例如,你可以试试这个:
function just_a_test()
{
call_user_func(array($this,'insert_coupon_codes'));
}
function insert_coupon_codes($post_array = array(), $primary_key = null)
{
echo "Just a test";
die();
//Your code here
}
回调中的问题是出现问题时没有错误显示。例如,如果你有
call_user_func(array($this,'test2'));
test2函数不存在。但是在任何地方都没有错误。
如果一切顺利,您只需简单地修改插入/更新即可。
在杂货店CRUD中,插入/更新/删除是一个ajax调用,所以要调试你的项目,你必须使用firefox firebug进行调试。 您可以拥有var_dump或print_r,并查看来自firebug的ajax调用响应。如果您不熟悉如何使用萤火虫, 我有一个针对调试的小黑客解决方案。
只需转到您的添加或编辑表单并禁用所有javascripts (您可以下载Web Developer for firefox,然后单击禁用>禁用Javascript>所有Javascript)。 然后,如果您刷新表单添加或编辑并推送提交,则视图中将存在ajax请求。 所以你可以看到你的var_dump或print_r。
仍然杂货CRUD不支持回调调试,所以我认为它现在是一个很好的解决方案。除此之外,在没有黑客攻击的情况下进行调试,您可以轻松拥有codeigniter的log_message功能。有关详情,请参阅http://ellislab.com/codeigniter/user-guide/general/errors.html