【问题标题】:Symfony3 Creating Service Error File Found but Class Not in itSymfony3 找到创建服务错误文件但类不在其中
【发布时间】:2018-03-13 05:40:21
【问题描述】:

这让我发疯了。我知道答案会很愚蠢,但我需要大约 1 天半的时间来问,英语不是我的母语,所以请耐心等待。首先,我正在尝试编写一个简单的服务,但不断收到错误

自动加载器预期的类“AppBundle\Services\Helpers”是 在文件中定义 “C:\xampp7.1.7\htdocs\curso-fullstack\vendor\composer/../../src/AppBundle\Services\Helpers.php”。 找到文件但类不在其中,类名或 命名空间可能有错字。

在我的 services.yml 文件中我得到了这个

app.helpers:
  class: AppBundle\Services\Helpers
  arguments:
      - ["null"]

定义服务

我的文件夹结构是 src/AppBundle/Services/Helpers.php 我得到的服务类如下

<?php
namespace AppBundle\Services\Helpers;

class Helpers {
    /* Funcion encargada de devolvernos un objeto json */
    public function jsonTemplate( $data ) {
        $normalizers = array( new GetSetMethodNormalizer() );
        $encoders    = array( "json" => new JsonEncoder() );

        $serializer = new Serializer( $normalizers, $encoders );
        $json       = $serializer->serialize( $data, 'json' );

        $response = new Response();
        $response->setContent( $json );
        $response->headers->set( "Content-Type", "application/json" );

        return $response;
    }
}
?>

【问题讨论】:

    标签: php symfony dependency-injection namespaces


    【解决方案1】:

    你必须改变class Helpers命名空间

    namespace AppBundle\Services;
    

    【讨论】:

    • 我做了并得到了 ServiceNotFoundException 有什么建议吗?
    【解决方案2】:

    把命名空间改成这样:

    namespace AppBundle\Services;
    

    而不是这个:

    namespace AppBundle\Services\Helpers;
    

    【讨论】:

    • 我做了并得到了 ServiceNotFoundException 有什么建议吗?
    • 如果它不起作用,请尝试启动您的控制台“composer dump-autoload”,将您的新错误和您的更新发布到问题@GermánFonseca
    • 好的,请解释一下...有一个对象缓存或类似的东西,因为我真的清除了开发和生产环境中的缓存
    • 好的,我必须补充一下,我只是意识到我在 services.yml 中更改了一行,然后它才起作用,如果我在向您展示再次停止工作之前更改了该行,services.yml 中的服务代码更正: app.helpers: app.helpers: class: AppBundle\Services\Helpers public: true arguments: - ["null"] 所以我把 public: true 因为在文件的开头 _default 设置为 false。跨度>
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多