Bonjour,

j'ai découvert ici un tuto sur le mvc : https://bpesquet.developpez.com/tuto...hitecture-mvc/. Le code est plus accessible (pour moi) que le code de rawsrc : https://www.developpez.net/forums/blogs/32058-rawsrc/. Par contre, il lui manque le mécanisme d'autoload ce qui nécessite des includes pour toutes les classes. J'essaye de le modifier pour le rajouter, mais erreur...

L'autoload est bien expliqué dans le blog de rawsrc : https://www.developpez.net/forums/bl.../#comment11831 (Ca, j'arrive à comprendre !)

Mais ça suffit pas.

dans index.php de Pesquet (j'ai rajouté les lignes 2 à 6 et commenté la ligne 1) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
//require 'Framework/Routeur.php';
//autoloading
include_once 'Autoloader.php';
use Framework\Routeur;
 
Autoloader::register();
 
$routeur = new Routeur();

autoloader.php (fichier placé à la racine) :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php 
 
class Autoloader {
static function register() {
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
 
    $autoloader = function($full_class_name) {
        // on prépare le terrain : on remplace le séparteur d'espace de nom par le séparateur de répertoires du système
        $name = str_replace('\\', DIRECTORY_SEPARATOR, $full_class_name);
        // on construit le chemin complet du fichier à inclure :a
        // il faut que l'autoloader soit toujours à la racine du site
        $path = DIR_ROOT.$name.'.php';
 
        // on vérifie que le fichier existe et on l'inclut
        // sinon on passe la main à une autre autoloader (return false)
        if (is_file($path)) {
            include $path;
            return true;
        } else {
            return false;
        }
    };
    spl_autoload_register($autoloader);
}
}

et la classe Framework/routeur.php (j'ai rajouté la ligne 2) :

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
namespace  Framework;
 
require_once 'Controleur.php';
//require_once 'Requete.php';
require_once 'Vue.php';
 
/**
 * Classe de routage des requêtes entrantes.
 * Inspirée du framework PHP de Nathan Davison
 * (https://github.com/ndavison/Nathan-MVC)
 * 
 * @author Baptiste Pesquet
 */
 
class Routeur
...
{

L'arborescence est donnée dans le chapitre VI-A de https://bpesquet.developpez.com/tuto...chitecture-mvc

et message d'erreur :
Fatal error: Cannot declare class Requete, because the name is already in use in C:\wamp64\www\mvc_dvp_auth2\Framework\Requete.php on line 10
La ligne 10 de requete.php est class Requete..

Comment corriger cette erreur ?