Bonjour à tous
voilà mon problème.
j'ai voulu migré un petit projet de site commercial sportif, développé à l'origine sous windows avec php 5.6 et wampserver vers un vieux pc 32 bits linuxmint utilisant xampp et php 7(pas la dernière version, because pc trop vieux ) histoire de voir si ça fonctionne sous un environnement différent.
Le problème est que ça ne fonctionne pas du tout.
Mon code est développé selon le modèle MVC.Mes fichiers sont stockés dans les dossiers, Controleur, modele (qui possède un dossier entités contenant les classes métiers), et le dossier vue.
Le tout est lancé via un index qui charge un autoloader de classes.
En principe dès que je lance le site je dois tombé sur la page d'accueil. A la place j'ai une erreur du type:
Visiblement une classe n'est pas trouvée (ici CategorieProduit). Je veux donc savoir s'il pourrait s'agir d'un problème de chemin de fichier ou d'un problème de nom de fichier ou de nom de classe ou bien d'une option non activée dans php ou xampp. c'est étrange car tout fonctionnait bien sous windows , alors je me suis dit que sous linux ça ne devrait pas poser de problème. Je m'aperçois que non.Fatal error: Uncaught Error: Class 'CategorieProduit' not found in /opt/lampp/htdocs/www/monsite/Modele/ManagerActivite.class.php:51 Stack trace: #0 /opt/lampp/htdocs/www/monsite/Controleur/ControleurAccueil.class.php(38): ManagerActivite->getListeActivesSportives() #1 /opt/lampp/htdocs/www/monsite/Controleur/Routeur.class.php(496): ControleurAccueil->listeActivites() #2 /opt/lampp/htdocs/www/monsite/index.php(30): Routeur->routerRequete() #3 {main} thrown in /opt/lampp/htdocs/www/monsite/Modele/ManagerActivite.class.php on line 51
voici le code de mon index et de mon autoloader car je pense que le problème vient de là. Mais comme je ne connais pas encore bien linux et xampp j'ai du mal à voir d'où ça peut venir.
code index
code autoloader
Code : 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 <?php include('Controleur/Autoloader.class.php'); Autoloader::register(); //si l'identifiant de session est vide on démarre la session $id = session_id(); if(empty ($id)) { session_start(); } //on initialise une variable de session vide if(!isset($_SESSION['personne'])) { $_SESSION['personne'] = NULL; } //Création d'un objet de type Routeur avec appel de la méthode de routage routerRequete() $routeur = new Routeur(); $routeur->routerRequete();
Merci pour votre aide
Code : 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
26 <?php Class Autoloader { /** * Méthode static register() : appelle la méthode spl_autoload_register() * */ public static function register() { private static function autoload($nomClasse) { $dossiers = array('Controleur/', 'Modele/', 'Modele/entites/', 'Vue/'); foreach($dossiers as $dossier) { if(file_exists($dossier . $nomClasse . '.class.php')) { require_once($dossier . $nomClasse . '.class.php'); } else {echo "le fichier " .$dossier . $nomClasse . ".class.php n'existe pas <br />";} } } }
Partager