Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/06/2011, 16h15   #1
Invité régulier
 
Inscription : juillet 2009
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : juillet 2009
Messages : 33
Points : 8
Points : 8
Par défaut require_once avec erreur "cannot redeclare class"

Bonjour,

J'ai un problème suite à la migration d'applications d'un serveur php 5.2.5 vers un serveur 5.3.6.

Lorsque nous faisons des inclusions (95% de require_once) nous notons toujours en chemin symbolique de type : ../monmodule/monmodule.class.php

Seulement dans certains scripts j'ai un soucis avec l'erreur "cannot redeclare class 'maclass'" qui est dût au format du chemin passé à require_once.

Exemple :

1er
Code :
require_once("../monmodule/monmodule.class.php");
2eme
Code :
 require_once("../monmodule/Monmodule.class.php"); //(Majuscule sur le fichier php)

Sur l'ancienne version de php cela marche sans soucis, sur la nouvelle non. Je ne trouve rien sur le net qui me donne une solution.

Une idée ?
maximeguyot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 16h53   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Ce n'est pas le nom du fichier qui pose problème mais la class qui est dedans.
Pour gérer les conflits il faudra passer par les namespaces si ce sont véritablement deux class différentes.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h32   #3
Invité régulier
 
Inscription : juillet 2009
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : juillet 2009
Messages : 33
Points : 8
Points : 8
Citation:
Ce n'est pas le nom du fichier qui pose problème mais la class qui est dedans.
C'est pas plutot la fonction require_once qui considère qu'il ne l'a pas inclus ? et qui du coup l'inclus à nouveau.


Citation:
Pour gérer les conflits il faudra passer par les namespaces si ce sont véritablement deux class différentes.
Qui que quoi ?
maximeguyot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 17h50   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par maximeguyot Voir le message
Qui que quoi ?
http://php.net/manual/fr/language.namespaces.php

et si ton code est bien fait pas besoin de require_once
http://php.net/manual/fr/language.oop5.autoload.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 18h55   #5
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
monmodule.class.php et Monmodule.class.php c'est censé être le même fichier ou 2 fichiers différent ?
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 11h16   #6
Invité régulier
 
Inscription : juillet 2009
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : juillet 2009
Messages : 33
Points : 8
Points : 8
C'est le meme fichier...
maximeguyot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2011, 15h51   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
utilise require au lieu de require_once
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 22/06/2011, 20h20   #8
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par maximeguyot Voir le message
C'est le meme fichier...
Si c'est le même fichier, il n'y aucune raison pour que la casse change.
C'est donc ton appel à require_once qui est faux.
Soit tu utilises toujours la majuscule, soit tu utilises la minuscule.
Et si ton appli est installée sur un système Unix ou Linux, il ne trouveras ton fichier que si la casse est correcte, alors autant appeler directement le bon nom.
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 09h12   #9
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par s.n.a.f.u Voir le message
Soit tu utilises toujours la majuscule, soit tu utilises la minuscule.
Je plussois.
require_once est sensible à la casse, et considère mxxx.php et Mxxx.php comme 2 fichiers différents.
Comme le dit s.n.a.f.u., il te faut choisir !
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h36   #10
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Citation:
Envoyé par jreaux62 Voir le message
require_once est sensible à la casse, et considère mxxx.php et Mxxx.php comme 2 fichiers différents.
Seulement sur un unix, hélas.
D'où les mauvaises habitudes de certains...
__________________
  • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
  • Merci d'utiliser les balises de code (# dans l'éditeur)
  • Si votre problème est réglé, merci d'utiliser le bouton
S.N.A.F.U
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2011, 12h25   #11
Invité régulier
 
Inscription : juillet 2009
Messages : 33
Détails du profil
Informations personnelles :
Localisation : France, Calvados (Basse Normandie)

Informations forums :
Inscription : juillet 2009
Messages : 33
Points : 8
Points : 8
Merci pour vos réponses !

J'ai plus qu'a faire du rechercher remplacer.

maximeguyot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h17.


 
 
 
 
Partenaires

Hébergement Web