【问题标题】:How to remove silencing errors is descouraged error from magento 2?如何从 magento 2 中删除沉默错误是不鼓励的错误?
【发布时间】:2019-11-05 18:55:00
【问题描述】:

我在 magento 2.3 中为 SSO 编写了代码,并为处理来自 okta、keycloak 等不同 IDP 的响应我完成了以下代码:

 if(!(@$xpath->query('/saml2p:Response',$xml))) {

            $status = SAML2Utilities::xpQuery($xml, './samlp:Status/samlp:StatusCode');   
}
        else{

           $status = SAML2Utilities::xpQuery($xml, './saml2p:Status/saml2p:StatusCode');   
}

我的代码运行良好,我可以通过不同的 IDP 登录,但是当我检查 magento 2 的 php 编码标准时,我收到以下错误: '不鼓励消除错误;找到:@$xpath->query... ' 如何解决?

【问题讨论】:

    标签: php magento xpath magento2 phpcs


    【解决方案1】:

    在 PHP 中,可以使用 @ 操作符来消除错误。在您的代码中,您有:

    if(!(@$xpath->query('/saml2p:Response',$xml))) {
    

    所以你在$xpath->query 之前有一个@。如果您删除@,则在您检查编码标准时将不会显示该错误。

    有关隐藏错误的更多信息,您可以查看PHP Documentation

    更新:

    删除@ 可能会导致问题,就好像发生错误会停止代码执行一样。您要么需要使用 try catch 处理错误,要么进行检查,例如检查变量是否为空、空等。

    【讨论】:

    • 感谢您的回答。如果我删除@,错误确实消失了,但插件停止工作,因为错误停止了流程,如何解决?
    • 您需要手动处理错误。您可以将其包装在 try catch 中,检查 $xpath 是否不为空等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    相关资源
    最近更新 更多