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