Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Symfony中实例化服务时遇到的问题_Php_Symfony_Service_Containers - Fatal编程技术网

Php 在Symfony中实例化服务时遇到的问题

Php 在Symfony中实例化服务时遇到的问题,php,symfony,service,containers,Php,Symfony,Service,Containers,我在Symfony应用程序中从控制器加载服务类时遇到问题 该服务位于ReadathonBundle\Payments\Ipn: namespace ReadathonBundle\Payments; class Ipn { private $testVariable; /** * Ipn constructor. * @param $testVariable */ public function __construct($testVari

我在Symfony应用程序中从控制器加载服务类时遇到问题

该服务位于
ReadathonBundle\Payments\Ipn

namespace ReadathonBundle\Payments;

class Ipn
{
    private $testVariable;

    /**
     * Ipn constructor.
     * @param $testVariable
     */
    public function __construct($testVariable)
    {
        $this->testVariable = $testVariable;
    }
}
我在services.yml中添加了配置设置:

parameters:
    app.ipn.testVariable: test-value

services:
    app.form.registration:
        class: ReadathonBundle\Form\UserType
        tags:
            - { name: form.type, alias: app_user_registration }

    app.ipn:
        class:  ReadathonBundle\Payments\Ipn
        arguments: ['%app.ipn.testVariable%']
我正在尝试使用以下代码段调用控制器中的服务:

class PayPalIPNController extends Controller
{
    /**
     * PayPal IPN
     *
     */
    public function listenerAction(Request $request)
    {
        $ipn = $this->get('app.ipn');

        var_dump($ipn->testVariable);

    }
这将导致500错误,并显示以下消息:

试图从命名空间加载类“Ipn” “ReadathonBundle\Payments”。您是否忘记了“使用”语句 另一个名称空间

我觉得我在某个地方遗漏了一些简单的东西,但我不能完全确定


哪里出了问题?

这个问题会困扰我很长时间。我花了一天的大部分时间在这个问题上


它不起作用,因为我在服务类文件名*facepalm*.

的末尾没有.php。这将困扰我很长一段时间。我花了一天的大部分时间在这个问题上


它不起作用,因为我在服务类文件名*facepalm*.

的末尾没有.php。您有正确的目录结构吗?你能把它寄出去吗?您还试图读取对象的私有属性。这是不对的,也行不通。阅读有关封装的内容。最后:这个异常可以从另一个地方抛出,因为你没有任何代码试图加载你的
Ipn
类。正如@Michaelsivolabov所指出的,验证你的目录结构可能是一个输入错误,该类必须位于默认目录结构之后的
src/ReadathonBundle/Payments/Ipn.php
中。另外,如果您在生产环境中,不要忘记清除缓存(看起来很明显,但并不总是…),您有正确的目录结构吗?你能把它寄出去吗?您还试图读取对象的私有属性。这是不对的,也行不通。阅读有关封装的内容。最后:这个异常可以从另一个地方抛出,因为你没有任何代码试图加载你的
Ipn
类。正如@Michaelsivolabov所指出的,验证你的目录结构可能是一个输入错误,该类必须位于默认目录结构之后的
src/ReadathonBundle/Payments/Ipn.php
中。另外,如果您正在生产中,不要忘记清除缓存(看起来很明显,但并不总是…)。