Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 07/06/2008, 10h11   #1
Membre du Club
 
Avatar de Merfolk
 
Inscription : juillet 2003
Messages : 166
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2003
Messages : 166
Points : 59
Points : 59
Par défaut includes et erreur de syntaxe = "die" obligé ?

Hello,
(c'est pour la suite de ma discutions de hier)


j'ai remarqué que s'il y a une erreur de syntaxe (genre ";" qui manque, pas une erreur à l'exécution)
le script s'arrête net.

que l'on mette include à la place de require ne change rien
que l'on mette dans un try include... catch ne fait rien non plus apparament
si je met @include() pareil, ça n'affiche plus d'erreur mais le script se bloque


ya til une solution pour ignorer le fichier à la place alors ?
ou bien un moyen de tester une erreur de syntaxe dans un fichier php avant de l'include ?





merci
__________________
Chasseur de bug en activité
L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur
Merfolk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 11h09   #2
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
Salut,

Une erreur de syntaxe, c'est potentiellement grave. Il est donc normal que cela crashe le script.
Tu peux éventuellement gérer tout ça avec des exceptions, mais sur une erreur de syntaxe, je pense qu'il faut se casser la gueule et corriger la faute.
Un peu de rigueur ne fait pas de mal.
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 11h43   #3
Membre du Club
 
Avatar de Merfolk
 
Inscription : juillet 2003
Messages : 166
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2003
Messages : 166
Points : 59
Points : 59
Citation:
Tu peux éventuellement gérer tout ça avec des exceptions
comment ? ça ne lance pas d'exception ça crash (enfin c'est mon constat)


Après ce n'est pas forcément une affaire de rigeur
une faute de frappe ça peut arriver, et ce serait regrettable que une page soit plantée à cause de l'affichage d'un petit bloc de 30*30 pixel qui est censé afficher la dernière photo ou un truc comme ça.
Un include d'un fichier source / d'une librairie -> oui ça plante c'est normal
Un include d'un mini bloc sur une page (ex qui affiche juste la date), on peut s'en passer et afficher un petit bloc blanc.

ça peut servir de rattraper un include
__________________
Chasseur de bug en activité
L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur
Merfolk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 21h40   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Non, si ça crashe, c'est que l'erreur est suffisamment importante pour planter le script. Sinon, tu n'aurais qu'un warning ou une notice.

L'interpréteur ne fait la différence entre un ; manquant dans une série d'echo qui servent à afficher tes mensurations en tous petits caractères dans un coin de ta page perso et un ; manquant dans le script assurant la sécurité du transfert d'argent pendant le virement que tu fais pour payer ton loyer.
C'est pas intelligent un ordi, ça fait exactement ce qu'on lui demande. Et pour lui c'est : Un ; manquant = je ne comprends pas la ligne suivante = une erreur = on arrête tout

Pour autant que je me rappelle jusqu'à php 4 et quelques, l'include qui plantait n'arrêtait pas forcément le script appelant, mais les dernières versions de php ont corrigé ça, donc il doit y avoir une raison
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 23h59   #5
Membre du Club
 
Avatar de Merfolk
 
Inscription : juillet 2003
Messages : 166
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2003
Messages : 166
Points : 59
Points : 59
je suis 100% d'accord avec ce que tu marques et n'ai jamais dit le contraire...
Je demandais juste si il y avait une sorte d'équivalent à un "include", qui fasse "return false" au lieu d'un "die"

pour gérer justement à la main une erreur éventuelle sur des scripts peu importants.
__________________
Chasseur de bug en activité
L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur
Merfolk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2008, 10h34   #6
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
Il faut que tu regardes ces deux fonctions : set_error_handler() et set_exception_handler()
s.n.a.f.u 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 02h02.


 
 
 
 
Partenaires

Hébergement Web