Php 找到的Symfony2文件类不在其中

Php 找到的Symfony2文件类不在其中,php,symfony,service,autoload,Php,Symfony,Service,Autoload,这是我的第一个问题,再说我不是英语母语的人,所以对于新手犯的错误提前表示歉意 我从Symfony2开始,几天来我一直面临自动加载问题,我快疯了 我只是想在AppBundle的DefaultController中使用一个PHP类。我已经读过这样做的方法,即在我的config.yml中创建一个服务,并为该类提供一个匹配的名称空间 Symfony告诉我它确实找到了文件,但类不在其中,确切的错误是: 自动加载器希望在文件“/srv/www/lol.com/public\u html/Priceget/s

这是我的第一个问题,再说我不是英语母语的人,所以对于新手犯的错误提前表示歉意

我从Symfony2开始,几天来我一直面临自动加载问题,我快疯了

我只是想在AppBundle的DefaultController中使用一个PHP类。我已经读过这样做的方法,即在我的config.yml中创建一个服务,并为该类提供一个匹配的名称空间

Symfony告诉我它确实找到了文件,但类不在其中,确切的错误是:

自动加载器希望在文件“/srv/www/lol.com/public\u html/Priceget/symfony/src/Priceget/CollectorBundle/Crawler/Amazon.php”中定义类“Priceget\CollectorBundle\Crawler\Amazon”。找到了文件,但类不在其中,类名或命名空间可能有输入错误

我的班级就是这样:

<?php

namespace Priceget\CollectorBundle\Crawler\Amazon;

use Symfony\Component\HttpFoundation\Response;

class Amazon
{

    public function getAll()
    {
        return new Response('l0l');
    }
}
我已经尝试过:

  • 空缓存
  • 重新启动apache
  • 将类扩展到控制器?:-Z

提前非常感谢。

您的命名空间错误,请将其重命名:

发件人:
namespace Priceget\CollectorBundle\Crawler\Amazon


收件人:
namespace Priceget\CollectorBundle\Crawler

除了Igor所说的之外,如果您希望服务声明(YML)中的FQN类名起作用,显然必须更改它。

如果您不放置
也会发生此错误。这可能有点误导,如果您没有正确扩展类,也会发生此错误。在我的实例中,我尝试使用错误的FQN扩展存储库:

class FilesRepository extends Doctrine\ORM\EntityRepository
应该是:

class FilesRepository extends \Doctrine\ORM\EntityRepository

请注意缺少的反斜杠(
\
)。

执行此操作时,它将返回文件未找到、自动加载错误。顺便说一句,我的文件夹结构是:src/Priceget/CollectorBundle/Crawler/Amazon。有什么建议吗?如果您有“Amazon”文件夹和“Amazon.php”文件,那么您需要将服务类定义更改为:
Priceget\CollectorBundle\Crawler\Amazon\Amazon
I dont,我错过了.php部分:P文件结构是:src/Priceget/CollectorBundle/Crawler/Amazon.php,如果我去掉“Amazon”系统,则会引发一个:FatalErrorException:Error:Class'Priceget\CollectorBundle\Crawler'在/srv/www/domain.es/public_html/Priceget/symfony/app/cache/dev/appdev/devdebugprojectcontainer.phpy中找不到,问题是,我太笨了,以至于我在config.yml^^中删除了Amazon,因此出现了异常..Amazon.php类位于:src/Priceget/CollectorBundle/Crawler/根据Igor的建议更改名称空间,Symfony引发了一个类未找到错误。也许我错过了一些基本的东西?FQN的含义是什么?(很抱歉新手提问)FQN代表“完全限定名”,这意味着带有命名空间的类名。只需在两个位置更改类名:类声明本身(php)和服务声明(yml):)
class FilesRepository extends Doctrine\ORM\EntityRepository
class FilesRepository extends \Doctrine\ORM\EntityRepository