打包回家 | 报告新错误 | 新建搜索 | 发展路线图 状态:正常开放 | 反馈 | 全部 | 自版本0.6.8起关闭

错误号3818 AuthorizeNet::process()方法访问“Result”对象的私有成员
提交: 2005-03-15 05:45 UTC(世界协调时)
发件人: 犹太教 已分配:
状态: 正常开放 包裹: 付款_处理
PHP版本: 无关 操作系统: 无关
路线图: (未分配)    
订阅  


 [2005-03-15 05:45 UTC]犹太教
描述:------------Payment_Process_AuthorizeNet::Process()方法调用Payment-Process_Result::factory()方法,但随后访问私有成员_request以将其自身设置为调用方。尽管它在PHP4下工作,但这不是一个好的做法。将处理器作为参数传递给工厂方法,或使用单独的方法进行设置(setProcessor()),或将私有成员更改为公共成员。我认为修改工厂方法是最好的方法。。。-菲利普

评论

 [2005-03-23 18:34 UTC]犹太教
当然,这意味着一次更新所有处理器。。。
 [2005-03-23 19:20 UTC]jstump公司
请不要多次提交相同的错误。现有的错误报告已经描述了这个问题。即使你觉得你的问题有些不同,解决方案很可能保持一致。因此,我们希望您添加您的评论改为现有的bug。谢谢你对珍珠的兴趣。错误3790的重复(因为这适用于所有驱动程序,而不是仅AuthorizeNet)
 [2005-03-23 23:28 UTC]犹太教
至少PHP 5会抱怨在Payment_Process_*::Process()调用中通过引用&$this传递到Payment_Process_Result::factory()方法。即使关闭了E_STRICT。我知道PHP4默认情况下不支持通过引用传递。你这样做是为了防止BC中断吗?是否有人真的应该在不经过Payment_Process_*处理器实例的情况下创建Payment_Process_Result实例。。。?考虑到包裹的状态,这样做值得吗?-菲利普
 [2005-07-28 03:01 UTC]jstump公司
对此有什么建议吗?