CodeIgniter
Les aides au debug
La classe Benchmarking
Cette classe permet de créer des marqueurs de début et de fin dans le code des modèles, des vues ou des contrôleurs créés avec CodeIgniter
dans le but de calculer le temps d'exécution du code entre le marqueur de début et le marqueur de fin.
Cette classe se charge toute seule au démarrage de chaque script, il n'est donc pas nécessaire de le spécifier dans le fichier autoload.php
du répertoire system/application/config ou de la charger dans le constructeur du contrôleur.
Pour calculer le temps d'exécution entre deux marqueurs, nous devons utiliser la méthode $this->benchmark->mark() au début et à la fin
du code à tester (en donnant en paramètre une chaîne de caractères différente à chaque appel de cette fonction) et la méthode
$this->benchmark->elapsed_time() pour afficher le temps d'exécution en secondes (cette fonction prend en paramètres deux chaînes de caractères
correspondant aux marqueurs de début et de fin).
Exemple :
<?php
class FakeController extends Controller{
function index(){
$this->benchmark->mark('mark_start');
$tmp = 3000000;
for ($i=0;$i<$tmp;$i++);
$this->benchmark->mark('mark_end');
echo $this->benchmark->elapsed_time('mark_start', 'mark_end');
}
}
?>
Le Profiler
Le Profiler est un outil de CodeIgniter permettant d'afficher les données présentes dans la variable $_POST, les requêtes SQL qui ont été
exécutées ainsi que les marqueurs utilisés avec la classe Benchmarking s'ils respectent cette condition : le nom du marqueur du
début doit se terminer par '_start' et le marqueur de fin par '_end' (comme dans l'exemple précédent).
Tout comme la classe Benchmarking, la classe Profiler se charge toute seule au démarrage.
Pour activer ou désactiver le profiling de l'application, il suffit d'utiliser la fonction suivante dans la méthode du contrôleur que l'on
veut analyser :
//Activation $this->output->enable_profiler(TRUE); //Désactivation $this->output->enable_profiler(FALSE);
Une fois le profiler activé, on obtient le tableau suivant à la fin de la page :

Les tests unitaires
CodeIgniter possède une classe qui correspond à un petit mécanisme de tests unitaires pour vérifier la valeur retournée par une fonction.
Cette classe est la classe Unit Test. On peut la charger soit en utilisant la fonction $this->load->library('unit_test') à partir
du constructeur du contrôleur ou la spécifier dans le fichier autoload.php du dossier system/application/config.
Pour effectuer un test, il suffit d'utiliser la fonction $this->unit->run() qui prend en paramètre la valeur à tester, la valeur
attendue, et optionnellement, le nom du test. Cette fonction retourne un tableau HTML que l'on peut afficher avec la fonction 'echo'.
Exemple :
echo $this->unit->run("1", "1", "Bon test");
echo $this->unit->run("1", "abc", "Test foireux");
L'exemple ci-dessus donne l'affichage suivant :

Pour obtenir plus d'informations sur cette classe, visitez cette page.