使用PhpStorm在Laravel中找不到类。奇怪的行为

时间:2017-02-16 15:00:38

标签: laravel composer-php phpstorm

我一直在苦苦挣扎;我终于解决了我的问题,但我无法理解:“为什么”。我有这个文件夹结构:

/app 
/many folders... 
/tests 
/tests/functional/ (which contains some tests) 
/tests/BaseClassA.php 
/tests/BaseClassB.php 

一切正常,一些功能测试继承BaseClassA。 (我知道这不是自动加载问题)。然后我决定创建BaseClassB.php,所以BaseClassA extends BaseClassB

我复制了BaseClassA.php文件,删除了内容;在BaseClassB文件中保留了我想要的内容。我运行composer dump-autload,但我一直收到消息:

  

致命错误:在'BaseClassA.php。

中找不到类'Tests \ BaseClassB'

两个文件都在同一个文件夹中,具有相同的命名空间。 为什么找不到班级?

所以,我删除了文件BaseClassB,(记得我复制了它);以另一种方式创建它:我右键单击:“创建新类”并键入BaseClassB。该文件具有相同的结构,PhpStorm找到了该类(我的意思是在IDE中没有导入警告)。但是运行时仍然失败(即使在运行composer dump-autoload之后):仍然是Error: class not found ...

我注意到在PhpStorm中,当我的其他类有 php图标时,文件图标是带有浅蓝色背景的 C

Q1:为什么?我的所有其他文件也都是类,为什么这个文件的显示方式不同?

这个图标差异困扰我,所以我再次删除了文件并点击:“创建新的php文件”,其中我复制粘贴了我的第一个文件的内容。它突然起作用了。

有没有人经历过这样的事情?我很确定第一次正确编写名称空间等,因为:

  1. PhpStorm没有在代码中给出彩色警告
  2. 我在第三次尝试时将代码复制粘贴到新创建的文件中。
  3. Q2:“创建新类”和“创建新的php文件”有何不同?

    我问这个是因为它令人沮丧(看起来好像是3次尝试,但我需要花费数小时才能找到它......)

0 个答案:

没有答案