La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Comment corriger son code sans forcément appeler l’enseignant M2202

Présentations similaires


Présentation au sujet: "Comment corriger son code sans forcément appeler l’enseignant M2202"— Transcription de la présentation:

1 Comment corriger son code sans forcément appeler l’enseignant M2202
Le débogage PHP Comment corriger son code sans forcément appeler l’enseignant M2202

2 Objectifs

3 Pour éviter les bugs Écrire un code propre ! Écrire un code aéré !
Écrire un code indenté ! Écrire un code commenté ! Écrire un code propre ! Écrire un code aéré ! Écrire un code indenté ! Écrire un code commenté !

4 Exemples : code aéré A éviter A faire

5 Exemple code indenté

6 Exemple: code commenté
Mettre des commentaires évidents Commenter les fonctions (ce qu’elles font) Les classes et méthodes Les attributs/Variable et leur utilité Ne commentez pas inutilement (surcharge du code)

7 Soyez rigoureux sur les dénominations
Nommage clair et précis des variables Un nom de variable doit suffire à comprendre à quoi sert la variable Soyez rigoureux sur la casse (particulièrement sous linux !) Une variable commence par une minuscule Une classe commence par une majuscule CamelCase, PSR-0, PSR-1, PSR-2, PSR-4… Certains Framework sont très rigoureux sur ce point (Symfony, CakePHP, …)

8 Comment débugger Afficher le contenu d’une variable
Echo $toto; Permet d’identifier si elle possède bien un contenu et si ce contenu correspond à ce que vous attendez Afficher un tableau Print_r($tab) Affiche un tableau sans devoir faire un for ou un foreach NE DOIT JAMAIS ETRE UTILISE SUR UN SITE EN PRODUCTION

9 Comment débugger Si vous ne connaissez pas a priori le type de variable (?!) Utiliser var_dump($variable) Affiche la variable et ses valeurs, les types, … Fonctionne avec une simple variable, un tableau, un objet !

10 Configurer PHP pour avoir les messages d’erreur
Dans le php.ini (si c’est possible) Dans le htaccess (si c’est possible) Dans le code php (en dernier recours !)

11 Php.ini

12 Quelques messages d’erreurs
Parse error: parse error in xxxx.php on line y Il s'agit d'une erreur de syntaxe. Vérifiez si vous n'avez pas oublié un ; marquant la fin d'une instruction. Verifier également si il ne manque pas un $ (dollar) devant le nom d'une variable. N'hésitez pas à contrôler les lignes précédentes. L'erreur se trouve souvent juste au- dessus.

13 Quelques messages d’erreurs
Warning: Variable $zzzz is not an array or string in xxxx.php on line y Vous tentez de manipuler une valeur numérique avec une fonction dédiée aux chaînes ou aux tableaux.

14 Quelques messages d’erreurs
Warning: Variable $zzzz is not an array or object in xxxx.php on line y Vous tentez de manipuler une valeur numérique avec une fonction dédiée aux tableaux ou aux objets.

15 Quelques messages d’erreurs
Warning: Cannot add header information headers already sent in xxxx.php on line y Vous avez tenté d'effectuer un Header après que l'entête HTTP ait envoyé au client. Vérifiez si une sortie (echo, print, message d'erreur, voir même du code html) ne s'exécute pas avant votre Header

16 Quelques messages d’erreurs
Fatal error: Maximum execution time exceeded in xxxx.php on line y PHP dispose d'un mécanisme permettant de se prémunir des scripts susceptibles d'engendrer un temps d'exécution trop important pouvant saturer un serveur. Par défaut, ce temps est de 30 secondes.

17 Quelques messages d’erreurs
Fatal Error: Call to undefined function: xxxx() in yyy.php on line z La fonction que vous appelez n'existe pas. Ce peut-être une fonction liée à une librairie externe (GD, Zlib, PDF, etc.). Dans ce cas, un simple phpinfo() vous renseignera sur les paramètres de compilation de votre version de PHP. Peut-être s'agit-il sinon d'une de vos propres fonctions. Vérifiez alors qu'elle existe (notamment si votre script y accède bien si elle se trouve dans un autre fichier). Et dans tous les cas, contrôlez de plus près le nom de la fonction appelée (orthographe, etc.). Une erreur de frappe est vite arrivée.

18 Quelques messages d’erreurs
Fatal Error: Cannot redeclare xxxx() in yyy.php on line z Vous avez certainement déclaré plusieurs fois la même fonction. Contrôlez à nouveau l'ensemble des fonctions que vous avez créées. Et n'hésitez pas à vérifier également dans les éventuels fichiers inclus. C'est souvent dans un script secondaire que vous trouverez le doublon. Veillez aussi à ne pas utiliser le nom d'une fonction propre à PHP ou à l'une de ses librairies.

19 Exercices Pour les messages suivants, quel est l’erreur ?

20 Exemple 1

21 Exemple 2

22 Exemple 3

23 Exemple 4

24 Exemple 5 : BDD

25 Exemple 5 : Code provoquant l’erreur

26 Exemple 5 : Debuggage

27 Exemple 6

28

29 Les erreurs sans message
Pas de message d’erreur, mais est-ce le résultat attendu ?

30 Les erreurs sans message
Pas de message d’erreur, mais est-ce le résultat attendu ?

31


Télécharger ppt "Comment corriger son code sans forcément appeler l’enseignant M2202"

Présentations similaires


Annonces Google