XDebug peut suivre les changements de variables, il suffit d'activer xdebug.collect_assignments
et xdebug.collect_params
, alors lorsque vous générez le fichier journal de suivi, vous devriez voir les changements.
Exemple de configuration:
xdebug.default_enable = 1 ; bool: The stacktraces will be shown by default on an error event.
xdebug.collect_vars = 1 ; bool: Gather information about which variables are used in a certain scope.
xdebug.show_local_vars=1 ; int: Generate stack dumps in error situations.
xdebug.collect_assignments=1 ; bool: Controls whether Xdebug should add variable assignments to function traces.
xdebug.collect_params=4 ; int1-4: Collect the parameters passed to functions when a function call is recorded.
xdebug.collect_return=1 ; bool: Write the return value of function calls to the trace files.
xdebug.var_display_max_children=256 ; int: Amount of array children and object's properties are shown.
xdebug.var_display_max_data=1024 ; int: Max string length that is shown when variables are displayed.
xdebug.var_display_max_depth=5 ; int: How many nested levels of array/object elements are displayed.
xdebug.trace_output_dir="/var/log/xdebug" ; string: Directory where the tracing files will be written to.
Ensuite, avant ou après avoir affecté la variable pour la première fois, commencer à tracer le code en ajoutant ceci dans votre code PHP:
xdebug_start_trace();
puis éventuellement ajouter xdebug_stop_trace();
à la fin où vous pensez que c'est déjà arrivé.
Ensuite, vérifiez le fichier généré dans le répertoire configuré (spécifié par xdebug.trace_output_dir
). Si le fichier est volumineux, filtrez-le par variable spécifique à l'aide de grep
, par ex.
grep --color=auto variable trace-log.xt
ou filtrer dans le fichier plus petit par: grep pattern trace-log.xt > smaller.log.txt
. Une autre alternative consisterait à utiliser phpdbg
.
Je comprends ce que vous voulez faire, mais pourquoi, quelle est la raison? – KyleK
si vous voulez faire est manuellement puis à chaque changement de variable vous ne pouvez pas assigner des valeurs variables au tableau comme '$ logs [] = $ variable;' mais vous le faites à chaque changement à la fin juste 'dump ($ logs) ' –
Dans les classes, vous pouvez le faire en utilisant' __set' – kelunik