Souvent, je ressens le besoin de vider une variable à des fins de débogage. Dans CodeIgniter, j'ai du mal à le faire car je ne peux pas simplement "faire écho" une variable sans la passer d'abord à la vue, ce qui, à mon avis, est pénible. J'ai lu la documentation officielle, bien que j'aie trouvé une bonne solution avec la fonction log_message mais je ne peux pas la faire fonctionner, même si j'ai réussi à rendre le dossier "logs" accessible en écriture et à changer le "seuil" comme conseillé. Aucune suggestion?
Ce n'est pas une bonne pratique, mais vous pouvez sortir n'importe quoi vers le navigateur à tout moment de l'exécution (à partir des classes de base, des bibliothèques, des modèles et des contrôleurs) en utilisant simplement print_r()
au point où vous voulez sortir les informations.
Bien sûr, cela ne s'affichera parfois pas car il peut y avoir des redirections/routes/etc qui amènent l'utilisateur à l'étape suivante de l'exécution du contrôleur, mais si vous souhaitez supprimer cela (encore une fois, à des fins de débogage uniquement), vous pouvez utiliser:
print_r($string_or_variable_to_debug);
die();
La commande die()
arrêtera toute exécution et ne vous laissera que les informations que vous souhaitez afficher.
L'utilisation de log_message()
est une meilleure pratique, mais il est difficile de comprendre pourquoi vous n'y réussissez pas si vous dites que vous avez suivi les étapes suivantes:
$config['log_threshold']
Sur 2, 3 ou 4log_message('debug','Message you want to log');
Si vous souhaitez utiliser print_r()
pour formater correctement un tableau ou un objet dans le message de journal, vous devrez définir le deuxième paramètre de print_r()
sur TRUE
, comme ceci :
log_message('debug',print_r($array_or_object,TRUE));
Vous devez définir votre $ config ['log_threshold'] dans le fichier config.php car par défaut c'est 0 (pas de journaux)
Je pense que la réponse que vous recherchez est: Codeigniter - Developer's Debug Helper
Vous pouvez ajouter ce fichier à application/helper
dossier. Puis chargement automatique vayes_helper
dans application/config/autoload.php
pour une utilisation générique. Il vous suffit alors d'écrire:
vdebug($variable); // In Controllers, Models, Libraries, Helpers
<?=vdebug($variable)?> // In View files
log_message('debug',print_r($array_or_object_you_want_to_print,TRUE));
Cela imprimera bien votre tableau dans le journal. Voici l'exemple de sortie:
[1] => Array
(
[uid] => 10049082
[phone_id] => 2
[friend_status] => 0
[friend_event_hide_status] =>
)
[2] => Array
(
[uid] => 10042768
[phone_id] => 4
[friend_status] => 3
)
[3] => Array
(
[uid] => 10078255
[phone_id] => 6
[friend_status] => 2
)
[4] => Array
(
[uid] => 10078255
[phone_id] => -1
[friend_status] => 1
[name] => Rajesh
)
[5] => Array
(
[uid] => 10078255
[phone_id] => -1
[friend_status] => 1
[name] => ritesh kumar
)
[6] => Array
(
[uid] => 10078255
[phone_id] => -1
[friend_status] => 1
[name] => Le
)