避免在方法“...”中使用对类“...”的静态访问

问题描述 投票:0回答:1

我有 Laravel 应用程序并决定添加

phpmd

User
模型中的示例代码

   use Illuminate\Support\Facades\Hash;

   ...

   public function setPasswordAttribute($value)
     {   
         $this->attributes['password'] = Hash::make($value);
     } 

并且

phpmd
显示错误

Avoid using static access to class '\Illuminate\Support\Facades\Hash' in method 'setPasswordAttribute'.

遇到此类错误如何处理?

php laravel
1个回答
0
投票

您可以通过在代码开头添加注释(位于

<?php
标签下方或旁边)来抑制此警告:

// @SupressWarnings(PHPMD.StaticAccess)

您必须将此注释放在调用静态方法的每个文件的开头。

要全局执行此操作,您必须创建一个忽略规则的规则集文件,如下所示:

<?xml version="1.0"?>
<ruleset name="My first PHPMD rule set"
    xmlns="http://pmd.sf.net/ruleset/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">

    <description>Laravel PHPMD ruleset</description>

    <rule ref="rulesets/unusedcode.xml" />

    <rule ref="rulesets/codesize.xml" />

    <rule ref="rulesets/naming.xml" />

    <rule ref="rulesets/cleancode.xml">
        <exclude name="StaticAccess" />
    </rule>
</ruleset>

请参阅 PHPMD 文档以了解更多详细信息:
https://phpmd.org/documentation/suppress-warnings.html
https://phpmd.org/documentation/creating-a-ruleset.html

© www.soinside.com 2019 - 2024. All rights reserved.