在Symfony中实例化服务的问题

时间:2016-04-19 14:48:05

标签: php symfony service containers

我在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 \付款&#34 ;.你忘记了"使用"声明   另一个命名空间?

我觉得我错过了一些简单的东西,但不能完全指责它。

问题出在哪里?

1 个答案:

答案 0 :(得分:0)

这个会困扰我很长一段时间。我大部分时间都在这个问题上度过了......

它没有用,因为我在服务类文件名末尾没有.php,* facepalm *。