Guide Utilisateur Version 1.7.2


Les Helpers

Les helpers (ou fonctions d'aide), et comme leur nom l'indique, sont là pour vous aider. Chaque fichier d'aide représente un ensemble de fonctions dans une catégorie particulière. Par exemple, les fonctions URL Helpers vous assisteront dans la création de lien, Form Helpers vous aideront à la création des formulaires, Text Helpers vous permettront de manipuler les chaines de caractères, Cookie Helpers initialiseront et liront les cookies, File Helpers vous aideront à manipuler les fichiers etc...

À l'inverse de la plupart des autres composants de CodeIgniter, les helpers ne sont pas écrits en orienté objet. Ce sont de simples fonctions procédurales. Chaque fonction helper exécute une tâche spécifique, sans dépendance avec les autres fonctions.

Par défaut, CodeIgniter ne charge pas les helpers. La première étape est donc de charger ceux dont vous avez besoin. Une fois chargés, ils deviennent disponibles de manière globale pour le contrôleur et les vues.

Les helpers sont sauvegardés dans le répertoire system/helpers, ou dans le répertoire system/appplication/helpers. CodeIgniter regardera d'abord dans le répertoire system/application/helpers et s'il n'y trouve rien, il regardera alors dans votre répertoire system/helpers.

Charger un Helper

Charger un helper est assez simple :

$this->load->helper('name');

name est le nom du fichier helper, sans l'extension '.php' ou la partie 'helper'.

Par exemple, pour charger le fichier URL Helper, nommée url_helper.php, vous devriez utiliser ceci :

$this->load->helper('url');

Un helper peut être chargé dans n'importe quelle fonction de votre contrôleur (et même dans vos fichiers vue, bien que cela ne soit pas recommandé), tant que vous le charger avant de l'utiliser. Pour le rendre disponible à toutes les fonctions du contrôleur, chargez le dans le constructeur, sinon chargez le seulement dans les fonctions le nécessitant.

Remarque : la fonction de chargement d'un helper ne retourne pas de valeurs, n'essayez pas de lui assigner une variable. Utilisez la comme montré ci dessus.

Charger plusieurs Helper

Vous pouvez charger plusieurs helper à la fois, en les spécifiant dans un tableau, comme ci-dessous :

$this->load->helper( array('helper1', 'helper2', 'helper3') );

Chargement Automatique des Helper

Si souhaitez avoir un helper disponible pour toute l'application, vous pouvez spécifier à CodeIgniter de le charger automatiquement lors de l'initialisation de l'application. Pour cela éditez le fichier application/config/autoload.php et ajoutez-y le helper au tableau de chargement automatique (autoload).

Utiliser un Helper

Une fois le helper contenant la fonction souhaitée chargé, vous l'appellerez de la même façon qu'une fonction standard PHP.

Par exemple, pour créer un lien utilisant la fonction anchor() dans l'un de vos fichiers vue :

<?php echo anchor('blog/comments', 'Click Here');?>

Où "Click Here" est le nom du lien, et "blog/comments" est l'URI du contrôleur ou fonction que vous voulez lier.

"Etendre" les Helpers

Pour "étendre" les helpers, créez un fichier dans votre répertoire application/helpers/ avec le même nom que le helper existant, mais préfixé par MY_(ce préfixe peut être changé. Voir plus loin.)

Si vous avez besoin d'ajouter certaines fonctionnalités à un helper (ajouter de nouvelles fonctions ou modifier des fonctions existantes), il est inutile de remplacer tout le helper par le votre. Dans ce cas, il est conseillé d'hériter d'un helper. Le terme "héritage" est ici utilisé par commodité car les fonctions helper sont procédurales, indépendantes et ne peuvent pas être étendues dans le sens traditionnel de la programmation objet. Néanmoins, cela vous permet d'ajouter une fonction helper, ou de modifier le fonctionnement d'une fonction helper native.

Par exemple, pour hériter de Array_Helper inclut dans CI, vous créerez un fichier nommé application/helpers/MY_array_helper.php, et ajouterez ou remplacerez des fonctions :

// any_in_array() n'est pas dans le Array_Helper, donc une nouvelle fonction any_in_array($needle, $haystack) sera créée
function any_in_array($needle, $haystack)
{
    $needle = (is_array($needle)) ? $needle : array($needle);

    foreach ($needle as $item)
    {
        if (in_array($item, $haystack))
        {
            return TRUE;
        }
        }

    return FALSE;
}

// random_element() est dans l'aide Array_Helper, elle remplacera donc celle ci
function random_element($array)
{
    shuffle($array);
    return array_pop($array);
}

Créer vos Propres Préfixes

Le préfixe pour hériter des helpers est le même que pour étendre les bibliothèques et les classes du cœur. Pour utiliser votre propre préfixe, ouvrez le fichier application/config/config.php et modifiez :

$config['subclass_prefix'] = 'MY_';

Veuillez noter que les bibliothèques CodeIgniter sont préfixées avec Ci_, donc NE L'UTILISEZ PAS pour votre préfixe.

Et Maintenant ?

Dans la tables des matières, vous trouverez une liste des fichiers helpers. Familiarisez-vous avec chacun d'eux.