2016-04-12 6 views
-1

Ich folge diesem Drupal 8 module development 101 Tutorial. Es ist zwischen 37:15 und 45:14 Uhr auf dem YouTube-Video. Ich habe diesen Fehler erhalten:Wie behebe ich einen "Fatal error" beim Erstellen eines Dienstes?

Schwerwiegender Fehler: Klasse 'Drupal \ dino_roar \ DinoServices \ HalloGenerator' nicht in C: \ Benutzer \ myName \ Sites \ devdesktop \ drupal-8.0.5 \ Module \ dino_roar \ src \ Controller gefunden \ RoarController.php auf Leitung 11

Ordnerstruktur: 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 

die fatalen Fehlerpunkte auf diese Codezeile in die Datei RoarController.php: $ helloGenerator = new HelloGenerator();

Dies ist die Symfony-Version. Ich kann es nicht sagen 1,2, oder 3 in diesem Fenster.

enter image description here

Antwort

1

Zunächst einmal braucht Ihre RoarController Klasse der Controller-Klasse

class RoarController 

zu

use Symfony\Bundle\FrameworkBundle\Controller\Controller 

class RoarController extends Controller 

EDIT erweitert

Ok jetzt

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

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

zu

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

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

Sie nicht verstehen, wie die Nutzung Dienste, warum ich Sie einladen, diese http://symfony.com/doc/current/book/service_container.html#creating-configuring-services-in-the-container

+0

einfach zu lesen meine RoarController aktualisieren, wie Sie vorgeschlagen haben, und Ich bekomme immer noch den gleichen Fehler. – Charlie123

+0

Danke! Ich werde mir die Lesung ansehen; Wie auch immer, ich habe gerade Ihren neuen Edit ausprobiert und es funktioniert immer noch nicht. Ich bin mir nicht sicher, was ich getan habe, das ist anders, weil das YouTube-Tutorial, das ich befolge, im Video gut funktioniert. – Charlie123

+0

Genau der gleiche Fehler? –