如何删除静音错误是 magento 2 中不鼓励的错误?
How to remove silencing errors is descouraged error from magento 2?
我已经为 magento 2.3 中的 SSO 编写了代码,并为处理来自不同 IDP(如 okta、keycloak)的响应编写了以下代码:
if(!(@$xpath->query('/saml2p:Response',$xml))) {
$status = SAML2Utilities::xpQuery($xml, './samlp:Status/samlp:StatusCode');
}
else{
$status = SAML2Utilities::xpQuery($xml, './saml2p:Status/saml2p:StatusCode');
}
我的代码工作正常,我可以通过不同的 IDP 登录,但是当我检查 php magento 2 的编码标准时,出现以下错误:
'Silencing errors is discouraged; found: @$xpath->query... '
如何解决?
在 PHP 中,可以使用 @
运算符消除错误。在您的代码中,您有:
if(!(@$xpath->query('/saml2p:Response',$xml))) {
所以你在 $xpath->query
之前有一个 @
。如果您删除 @
,则在检查编码标准时将不会显示该错误。
有关隐藏错误的更多信息,您可以查看 PHP Documentation
更新:
删除 @
可能会导致问题,就好像发生错误会停止代码执行一样。您要么需要使用 try catch 处理错误,要么进行检查,例如检查变量是否为 null、空等。
我已经为 magento 2.3 中的 SSO 编写了代码,并为处理来自不同 IDP(如 okta、keycloak)的响应编写了以下代码:
if(!(@$xpath->query('/saml2p:Response',$xml))) {
$status = SAML2Utilities::xpQuery($xml, './samlp:Status/samlp:StatusCode');
}
else{
$status = SAML2Utilities::xpQuery($xml, './saml2p:Status/saml2p:StatusCode');
}
我的代码工作正常,我可以通过不同的 IDP 登录,但是当我检查 php magento 2 的编码标准时,出现以下错误: 'Silencing errors is discouraged; found: @$xpath->query... ' 如何解决?
在 PHP 中,可以使用 @
运算符消除错误。在您的代码中,您有:
if(!(@$xpath->query('/saml2p:Response',$xml))) {
所以你在 $xpath->query
之前有一个 @
。如果您删除 @
,则在检查编码标准时将不会显示该错误。
有关隐藏错误的更多信息,您可以查看 PHP Documentation
更新:
删除 @
可能会导致问题,就好像发生错误会停止代码执行一样。您要么需要使用 try catch 处理错误,要么进行检查,例如检查变量是否为 null、空等。