DÉBOGAGE D'UN CODE PHP (SUIVIT DES VARIABLES)

Signaler
Messages postés
493
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
-
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 octobre 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52169-debogage-d-un-code-php-suivit-des-variables

Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 octobre 2007
1
Je découvre HEREDOC, donc voilà:

je n'ai pas réussi à faire de concaténation de variable {$JS.$CSS}, et PHP_EOL est ignoré et affiché tel quel (pas anormal, puisqu'avec HEREDOC il suffit de sauter la ligne !)

J'ai finalement réussi à obtenir ce que je voulais (et c'est vrai que c'est mieux) en faisant ainsi:

$this->BEGIN =
<<
<HTML>
<HEAD>
<TITLE>DEBUG</TITLE>
<meta name='author' content='OriginalCompo' />
<meta name='owner' content='Jean-Pierre Aguado' />
<meta name='Debug unit for PHP 5' content='Debug unit for PHP 5' />
<meta name='keywords' content='PHP5, Debug' />

{$JS}

{$CSS}
</HEAD>

BEGIN;
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Merci pour l'utilisation de la notation Heredoc qui allège le code en évitant les guillemets simples/doubles et les opérateurs de concaténation à répétition.
Mais je vois que tu n'es pas allé au bout de la démarche comme ici :
$this->BEGIN .= PHP_EOL
.$JS.PHP_EOL
.$CSS.PHP_EOL
.'</HEAD>'.PHP_EOL
.PHP_EOL
.'';

Alors qu'il suffit d'écrire chaque variable entre accolades :
{PHP_EOL.$JS.PHP_EOL.$CSS.PHP_EOL}
</HEAD>{PHP_EOL.PHP_EOL}


Il suffisait de se souvenir qu'au départ, les variables devaient être encadrées d'accolades en PHP. Cette habitude a disparu avec l'évolution du langage mais reste néanmoins utilisable.

En ce qui concerne le CSS et le javascript, ton point de vue est tout à fait approprié.
Bonne continuation.
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 octobre 2007
1
oups, j'ai oublié dans les nouveautés la possibilité de ne créer ou mettre à jour le fichier de trace que lorsqu'on le désire grace à la méthode set_UpdateTrace($booleen)
Ex
$instance_ocDEBUG->set_UpdateTrace(false);
...
$instance_ocDEBUG->set_UpdateTrace(true); // à mettre avant la fin du script à deboguer
Messages postés
65
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
9 octobre 2007
1
Merci Delphiprog pour les commentaires.

__clone : je vais suivre le conseil. (Comme c'est une classe pour debuguer, je suis parti
du principe que l'utilisateur n'a aucun interet à essayer de faire des trucs bizarres, comme cloner cette classe, sauf s'il veut volontairement écraser ou planter ses résultats. Pour être totalemnt franc, j'avais aussi zappé cette fonctionnalité... je reviens tout juste à la programmation php !)

css: le probleme comme j'y fais allusion dans le code est que si on debogue plusieurs pages se trouvant dans des dossiers/chemins différents, il faut prendre en compte tous les
chemins, et les changer à chaque fois que l'on change de projet. Le fait de l'insérer dans le head fait que l'on n'a pas à toucher au source de la classe (moins de travail donc).
J'avais initialement externalisé le js et le css, pour revenir à cette dernière version qui est plus pratique. (De plus le css est spécifique à l'affichage du débogage, et n'est pas sensé évoluer ni être utilisé ailleurs).
Afficher les 6 commentaires