使PhpStorm对命名空间和路径执行区分大小写一致性检查?

时间:2017-02-28 16:02:35

标签: php intellij-idea phpstorm jetbrains-ide psr-4

我正在OSx上使用PhpStorm开发Web应用程序。我使用Composer并在composer.json中配置了PSR-4自动加载功能。在我的开发机器上一切正常,但是当我上传到运行Linux的生产服务器时,自动加载会中断。

经过一些故障排除后发现它是因为OSx使用不区分大小写的文件系统,而Linux使用的是区分大小写的系统。因为我的命名空间看起来像这样

App\Service\AuthService

虽然我的路径看起来像这样

app/service/AuthService.php

自动加载器无法在Linux上找到service文件夹,因为它正在查找Service(使用大写S)。

好的,所以我可以通过重命名所有文件夹和类文件来使用与我的命名空间相同的情况来轻松解决这个问题。但是为了防止将来出现任何意外情况不一致,如果PhpStorm在我尝试使用时会发出警告会很好

use App/Foo/Bar/HelloWorld;

而实际文件路径是

app/foo/bar/HelloWorld.php

我是否可以使用这样的设置让PhpStorm自动检查,即使我在具有不区分大小写的文件系统的计算机上进行开发?

1 个答案:

答案 0 :(得分:0)

这个等效的Java问题得到了答案,该问题使用较低级别的技术来重新配置IDE,以将文件系统视为区分大小写。

Case sensitive files in IntelliJ Idea on Mac OSX

我已经尝试过并且它确实起作用,不仅是名称空间,而且是任何以任何方式都不匹配的文件(例如,includes,requires)。

但是它会在启动时警告您说FS不区分大小写,并且链接到this article,其中有一些警告/注意错误使用此设置。

  • PHPStorm:帮助>编辑自定义属性
  • 创建idea.properties文件(如果出现提示)
  • 添加idea.case.sensitive.fs=true
  • 重新启动IDE

您可能会看到:

Filesystem Case-Sensitivity Mismatch
        The project seems to be located on a case-insensitive file system.
        This does not match the IDE setting (controlled by property "idea.case.sensitive.fs")
        More details. (show balloon)
https://confluence.jetbrains.com/display/IDEADEV/Filesystem+Case-Sensitivity+Mismatch

因此,我可以尝试将其作为清除错误的一种选择,但也许并不是一直使用它。