Je ne peux pas connecter twig avec PHP Controller

Nov 19 2020

J'ai un problème, j'essaye d'utiliser twig dans un projet autonome. Mais quand je définis les paramètres de twig, cela montre une erreur

Je lisais le document officiel. et transfère le codage en modifiant un peu pour l'adapter à ma classe.

Fatal error: Class 'App\Http\Controllers\BaseController' not found in C:\laragon\www\mecanicos\src\Http\Controllers\HomeController.php on line 6

J'ai été lu

BaseController.php

<?php

namespace App\Controllers;
use Twig_Loader_Filesystem;
use Twig\Environment;

class BaseController {
    protected $templateEngine; public function __construct(){ $loader = new Twig_Loader_Filesystem(__DIR__ .'/../resources/views');
        $this->templateEngine = new Twig_Environment($loader, [
            'debug' => true,
            'cache' => false
        ]);
    }

    public function renderHTML($fileName, $data = []){
        return $this->templateEngine->render($fileName, $data);
    }
}

HomeController.php

<?php

namespace App\Http\Controllers;
use App\Http\Controllers;

class HomeController extends BaseController {
    public function index(){
        
    echo $this->renderHTML('home.twig');
    }
}

composer.json

"autoload": {
        "psr-4": {
            "App\\": "src/"
        },
        "files": [
            "src/helpers.php"
        ]
    },

"require-dev": {
        "twig/twig": "9999999-dev"
    }

Où est-ce que j'échoue?

Réponses

1 ThomasP. Nov 19 2020 at 07:10

Il semble que vos espaces de noms ne correspondent pas. App\Http\Controllers\BaseControllervs App\Controllers\BaseControllerSemble que Laravel ne trouve pas le bon BaseController. Corrigez l'espace de noms et réessayez.