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 :La ligne 10 de requete.php est class Requete..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
Comment corriger cette erreur ?
Partager