我正在将PayPal集成到用PHP编写并在PHP 5.3.1上运行的应用程序中(使用Zend Engine 2.3.0)。 每当我需要PayPal SDK文件或使用任何方法时,它都会打印出大量的错误和警告消息。 我显然希望尽可能保持错误消息报告(至少对于我的代码而言)。
我的问题与此类似(我没有写过)https://www.x.com/message/167121#167121
我担心可能出现的安全问题以及显而易见的大量消息都会进入日志。
你知道如何修复/解决这个问题吗?
谢谢:)
编辑: 警告列表中的示例(还有更多):
作为一个例子(但还有更多):
严格标准:分配回报 新的参考价值是 在(...)/ PayPal.php上弃用 87
严格标准:分配回报 新的参考价值是 在(...)/ PayPal.php上弃用 115
严格标准:宣言 PayPal :: raiseError()应该是 兼容的 (...)/ PayPal.php中的PEAR :: raiseError() 在第198行
严格标准:分配回报 新的参考价值是 在(...)/ PayPal / Hack.php中弃用 第78行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第90行的PayPal / SOAP / Value.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第93行的PayPal / SOAP / Value.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第221行的PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第514行的PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第616行的PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第617行的PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/第760行的PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 第897行的(...)/ PayPal / SOAP / Base.php
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / SOAP / Base.php在线 1055
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / SOAP / Base.php在线 1083
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / SOAP / Base.php在线 1109
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / SOAP / Base.php在线 1151
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / SOAP / Base.php在线 1176
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDType.php在线 97
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDType.php在线 110
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDType.php在线 112
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/贝宝/资料/处理器/ Array.php 第53行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Profile / API.php在线 256
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDSimpleType.php on 第69行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDSimpleType.php on 第71行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDSimpleType.php on 第98行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDSimpleType.php on 第111行
严格标准:分配回报 新的参考价值是 不推荐使用 (...)/ PayPal / Type / XSDSimpleType.php on 第113行
答案 0 :(得分:2)
我认为PayPal代码是来自PEAR包的外部库,您使用的不是5.3严格可比。有一些代码遭遇了这个问题。
假设您不想更改该代码并将其提交回(;)),您可以做的事情并不多。
列举我想到的前两个:
在你的包装器代码中,每次在呼叫之前返回E_STRICT,然后重新开启。 E.g。
<?php
class myPayPalWrapper {
public function doX() {
$x = error_reporting(E_ALL & ~E_STRICT); # or something
$this->externalPaypalClass->doX();
error_reporting($x);
}
}
看起来不太漂亮,需要大量的代码。
如果您已经在项目中使用自定义错误处理程序,则可以扩展它以过滤掉该lib的所有错误。 E.g。
<?php
function myErrorHandler($iErrno, $sErrstr, $sErrfile, $iErrline) {
if(error_reporting() & $iErrno) {
if(strpos("libFolder/paypal", $sErrfile) !== false) {
return true;
}
}
return false;
}
希望有所帮助