【问题标题】:namespaceing for service class in symfony2 projectsymfony2 项目中服务类的命名空间
【发布时间】:2016-02-01 07:33:22
【问题描述】:

我面临一个问题,我不知道这是什么原因,我在我的项目 src/ApiMaps/ApiMapBundle 中添加了带有位置的类,并使用了这个命名空间

   <?php
     namespace ApiMaps\ApiMapService;

  class ApiMapService {
  private $transport;
   public function __construct() {
    $this->transport = 'sendmail';
  }
// ...
}

当我放弃时

       src/config/service.yml

      app.test:  
      class:  ApiMaps\ApiMapService\ApiMapService
      arguments: ["@doctrine.orm.entity_manager"]

当我从其他类运行它时,例如

 src/ApiMaps/ApiMapBundle/Command/GetApiCommand.php


 class GetApiCommand extends ContainerAwareCommand
   {  
   protected function execute(InputInterface $input, OutputInterface $output)
     {
   $number = $this->getContainer()->get('app.test');
     }
   }

它给我错误

致命错误:在 D:\xampp\htdocs\ProjectMapApiData\a 中找不到类 'ApiMaps\ApiMapService\ApiMapService' pp\cache\dev\appDevDebugProjectContainer.php 在第 325 行 [2016-02-01 08:25:20] php.CRITICAL:致命错误:找不到类 'ApiMaps\ApiMapService\ApiMapService' {" 类型":1,"文件":"D:\xampp\htdocs\ProjectMapApiData\app\cache\dev\appDevDebugProjectContainer.php"," line":325,"level":-1,"stack":[]}

[Symfony\Component\Debug\Exception\ClassNotFoundException] 尝试从命名空间“ApiMaps\ApiMapService”加载类“ApiMapService”。 您是否忘记了另一个命名空间的“使用”语句?

注意—— 值得一提的是,当我尝试从 symfony2 的内置类中提供服务时,它不会给我这样的错误。我确实知道我需要在哪里添加我最近添加到我的项目中的类的命名空间,它能够知道该类......

【问题讨论】:

    标签: php symfony doctrine-orm autoload


    【解决方案1】:

    您在文件中提到您的服务: src/ApiMaps/ApiMapBundle
    但在配置中你写道: ApiMaps\ApiMapService\ApiMapService.

    我认为您应该将您的服务放入文件中:src/ApiMaps/ApiMapBundle/ApiMapService/ApiMapService.php
    取命名空间:ApiMaps\ApiMapBundle\ApiMapService
    并写入配置:ApiMaps\ApiMapBundle\ApiMapService\ApiMapService

    相信它会帮助你...

    【讨论】:

    • 现在我在 src/ApiMaps/ApiMapBundle/ApiMapService.php 命名空间 ApiMaps\ApiMapBundle\ApiMapService 中的类中添加了这个命名空间;当我用 app.test 调用它时,在 config/service.yml 中: class: ApiMaps\ApiMapBundle\ApiMapService arguments: ["@doctrine.orm.entity_manager"] 现在它给了我错误
    • [RuntimeException] 自动加载器预期类“ApiMaps\ApiMapBundle\ApiMapService”将在文件“D:\xampp\h tdocs\ProjectMapApiData/src\ApiMaps\ApiMapBundle\ApiMapService.php”中定义。文件找到了,但是class不在里面,类名或者命名空间可能有错别字。
    • 致命错误:在 D:\xampp\htdocs\Projec tMapApiData\app\cache\dev\appDevDebugProjectContainer.php 在第 325 行 [2016-02 -01 08:51:04] php.CRITICAL:致命错误:找不到类'ApiMaps\ApiMapBundle\ApiMapService\ApiMapService' "type":1,"file":"D:\\xampp\\htdocs\\ProjectMapApiData\ \app\\ cache\\dev\\appDevDebugProjectCon tainer.php","line":325,"level":-1,"stack":[]}
    • [Symfony\Component\Debug\Exception\ClassNotFoundException] 试图从命名空间“ApiMaps\ApiMapBundle\ApiMapService”加载类“ApiMapService”。您是否忘记了另一个命名空间的“使用”语句?
    • 感谢您的回复。当我根据您的建议进行更改时,我现在遇到了这个错误。
    猜你喜欢
    • 2011-11-02
    • 1970-01-01
    • 2014-11-11
    • 2017-01-04
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多