PHP Symfony错误:"您是否忘记使用use语句",无论类/功能如何

时间:2017-05-23 04:59:16

标签: php symfony class phpstorm

我已经开始使用Symfony构建一个新的Web应用程序,但是在使用类时遇到了问题。

PhpStorm能够找到类中的函数(因为它在您键入$className->时提供了建议。

另外,为了证明这与其他类似的问题不一样,我已经过度简化了,即便如此,错误仍然存​​在。

我在DefaultController中有以下内容:

<?php

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use testBundle;
use AppBundle\domainionClasses\firstlevelchecks;

class DefaultController extends Controller
{
    /**
     * @Route("/register",name="register")
     */
    public function registerAction(){
        $testClass = new firstlevelchecks(); 
        $testing  = $testClass->donothing(); //the IDE knows that the function donothing() exists, in fact it suggests it.
        return new Response('');
    }
}

以下是位于AppBundle/domainionClasses/test1.php

的php类
<?php

namespace AppBundle\domainionClasses;


class firstlevelchecks
{
    function donothing(){
        return null;
    }
}

加载/register路由时,会显示以下Symfony错误:

  

尝试加载课程&#34; firstlevelchecks&#34;来自命名空间&#34; AppBundle \ domainionClasses&#34;。   你忘记了&#34;使用&#34;另一个命名空间的语句?

它正在尝试从正确的名称空间加载类,并且我使用了一个use语句。

我在这里缺少什么,或者Symfony有问题吗?这是我第一次使用新版本的PhpStorm,刚刚下载了插件,这也是我第一次遇到这个问题:(

1 个答案:

答案 0 :(得分:5)

由于您的文件名为test1.php,自动加载器如何知道要包含哪个文件?

您应该将其重命名为firstlevelchecks.php(=您班级的名称和案例)。