如何在创建服务时解决“致命错误”?

时间:2016-04-12 14:23:15

标签: symfony drupal phpstorm drupal-modules drupal-services

我正在关注这个Drupal 8 module development 101教程。 YouTube视频的时间是37:15到45:14之间。我一直收到这个错误:

致命错误:第11行的C:\ Users \ myName \ Sites \ devdesktop \ drupal-8.0.5 \ modules \ dino_roar \ src \ Controller \ RoarController.php中找不到类'Drupal \ dino_roar \ DinoServices \ HelloGenerator'

文件夹结构: enter image description here

HelloGenerator.php

<?php

namespace Drupal\dino_roar\DinoServices;

class HelloGenerator
{
    public function getHello($count){
        return "Gotten Hello ".$count;
    }
}

RoarController.php

<?php

namespace Drupal\dino_roar\Controller;

//use Drupal\dino_roar\DinoServices\HelloGenerator;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class RoarController extends Controller
{
    public function roar($count){
        //$helloGenerator = new HelloGenerator();
        $helloGenerator = $this->get('dino_roar.hello_generator');
        $hello = $helloGenerator->getHello($count);
        return new Response($hello);

        //return new Response("Hello World ".$count);
    }
}

dino_roar.info.yml

name: Dino ROAR
type: module
description: "ROAR at you"
package: Custom
core: 8.x

dino_roar.routing.yml

dino_says:
    path: /dino/says/{count}
    defaults:
        _controller: '\Drupal\dino_roar\Controller\RoarController::roar'
    requirements:
        _permission: 'access content'

dino_roar.services.yml

services:
    dino_roar.hello_generator:
        class: Drupal\dino_roar\DinoServices\HelloGenerator

致命错误指向RoarController.php文件中的这行代码:$ helloGenerator = new HelloGenerator();

这是Symfony版本。我在这个窗口中找不到它说1,2或3。

enter image description here

1 个答案:

答案 0 :(得分:1)

首先,你的RoarController类需要扩展 Controller类

{{vm.$rootScope.currentPage}}

class RoarController

修改

好了,现在改变

use Symfony\Bundle\FrameworkBundle\Controller\Controller

class RoarController extends Controller

public function roar($count){
    $helloGenerator = new HelloGenerator();
    $hello = $helloGenerator->getHello($count);
    return new Response($hello);

    //return new Response("Hello World ".$count);
}

您并不了解如何使用服务,以便我邀请您阅读此http://symfony.com/doc/current/book/service_container.html#creating-configuring-services-in-the-container