错误:类别“路径”与PSR-4配置不兼容

时间:2020-05-31 07:09:12

标签: psr-4 phpcs

我正在尝试使用PHP编码标准软件包:https://github.com/inpsyde/php-coding-standards,但是当我开始运行phpcs时,我得到了:

nickan@nickan-VirtualBox:~/src/wordpress/wp-content/plugins/my-plugin$ vendor/bin/phpcs ./src/model/Users.php 
E 1 / 1 (100%)



FILE: /home/src/wordpress/wp-content/plugins/my-plugin/src/model/Users.php
-------------------------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
-------------------------------------------------------------------------------------------------------------------------------
 5 | ERROR | Class 'Plugin\Model\Users', located at
   |       | '/home/src/wordpress/wp-content/plugins/my-plugin/src/model/Users.php', is not
   |       | compliant with PSR-4 configuration. (Inpsyde.CodeQuality.Psr4.InvalidPSR4)

这是路径my-plugin/src/model/Users.php中的文件

<?php declare(strict_types=1);

namespace Test\Model;

class Users
{

}

我没有发现问题所在,代码可以正常工作,但错误不断出现。我尝试使用不同的命名空间,更改文件夹等,但仍然无济于事,将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:4)

PSR-4(除其他事项外)要求名称空间直接对应于目录结构。这是区分大小写的。

长话短说:您需要用大写M命名目录src/Model/Users.php

此外,您的名称空间没有PSR-4要求的供应商前缀。嗅探器将无法检测到该声音,但您仍应修复该错误。

答案 1 :(得分:0)

该问题可能是由于以下配置所致。请确保您已添加正确的配置

    <rule ref="Inpsyde.CodeQuality.Psr4">
    <properties>
        <property
            name="psr4"
            type="array"
            value="Inpsyde\MyProject=>wp-content/plugins/inpsyde-task-plugin/InpsydeTaskPlugin.php,InpsydeTests=>tests/InpsydeTests"/>
    </properties>
</rule>
相关问题