XXIII. Chapitre 23 : Les helpers▲
Cette liste des helpers avait été établie avant documentation, je la laisse en essayant de la compléter au mieux…
XXIII-A. La classe « HTML »▲
XXIII-A-1. La méthode « entities »▲
Cette méthode utilise la méthode htmlentities avec l'option ENT_QUOTES avec l'encodage UTF-8 :
Route::get('/', function() {
    return HTML::entities('L\'enfant est <strong>gros</strong>');
});Affiche :
L'enfant est <strong>gros</strong>Avec ce code HTML :
L'enfant est <strong>gros</strong>Notez que l'helper « e » fait exactement la même chose avec une syntaxe plus légère.
XXIII-A-1-a. Méthode « decode »▲
C'est l'inverse de la précédente :
Route::get('/', function() {
    return HTML::decode('L'enfant est <strong>gros</strong>');
});Qui donne :
L'enfant est <strong>gros</strong>Avec le code HTML :
L'enfant est <strong>gros</strong>XXIII-A-1-b. Méthode « image »▲
Cette méthode permet de générer une balise <img> :
Qui génère :
<img src="http://localhost/laravel/public/img/bateau.jpg">On dispose de deux autres paramètres, le premier pour l'attribut alt, le second pour un tableau avec tous les attributs que l'on veut :
Route::get('/', function() {
    return HTML::image('img/bateau.jpg', 'bateau', array('height' => 42, 'width' => 42));
});Qui génère :
<img src="http://localhost/laravel/public/img/bateau.jpg" height="42" width="42" alt="bateau">XXIII-A-1-c. Méthode « link »▲
Cette méthode permet de générer une balise <a> :
Qui génère :
<a href="http://localhost/laravel/public/pages/page1.html">http://localhost/laravel/public/pages/page1.html</a>On dispose de trois autres paramètres, le premier pour le titre, le second pour un tableau avec tous les attributs que l'on veut, et le troisième pour passer en mode sécurisé :
Route::get('/', function() {
    return HTML::link('pages/page1.html', 'page1', array('target' => '_blank'), true );
});Qui génère :
<a href="https://localhost/laravel/public/pages/page1.html" target="_blank">page1</a>XXIII-A-1-d. Méthode « secureLink »▲
C'est la même méthode que la précédente mais le dernier paramètre n'existe plus et on est d'office en mode sécurisé.
XXIII-A-1-e. Méthode « script »▲
Cette méthode génère une balise script :
Code généré :
<script src="http://localhost/laravel/public/js/main.js"></script>Un deuxième paramètre permet de définir des attributs avec un tableau :
Route::get('/', function() {
    return HTML::script('js/main.js', array('charset' => 'UTF-8'));
});Résultat :
<script charset="UTF-8" src="http://localhost/laravel/public/js/main.js"></script>XXIII-A-1-f. Méthode « style »▲
Cette méthode permet de générer un lien vers une feuille de style :
Code généré :
<link media="all" type="text/css" rel="stylesheet" href="http://localhost/laravel/public/ccc/main.css">Un deuxième paramètre permet de définir des attributs dans un tableau :
Route::get('/', function() {
    return HTML::style('ccc/main.css', array('disabled' => 'true'));
});Code généré :
<link disabled="true" media="all" type="text/css" rel="stylesheet" href="http://localhost/laravel/public/ccc/main.css">XXIII-A-1-g. Méthode « linkRoute »▲
Cette méthode permet de générer un lien vers une route :
<a href="http://localhost/laravel/public/login">http://localhost/laravel/public/login</a>On dispose de trois autres paramètres : un pour le titre, un autre pour les paramètres, et un dernier pour les attributs :
<a href="http://localhost/laravel/public/login?nom=Dupont" target="_blank">log</a>XXIII-A-1-h. Méthode « linkAction »▲
Cette méthode est calquée sur la précédente mais on pointe cette fois une action d'un contrôleur :
Route::get('/', function() {
    return HTML::linkAction('LivresController@create', 'create', array('nom' => 'Dupont'), array('target' => '_blank'));
});<a href="http://localhost/laravel/public/livres/create?nom=Dupont" target="_blank">create</a>XXIII-A-1-i. Méthode « ol »▲
Cette méthode permet de générer une liste ordonnée :
Vous avez un second paramètre pour les attributs :
XXIII-A-1-j. Méthode « ul »▲
Cette méthode est calquée sur la précédente :
XXIII-A-1-k. Les macros▲
XXIII-A-2. Les URL▲
XXIII-A-2-a. Méthode « url »▲
La première méthode, la plus simple, est url :
http://localhost/laravel/publicOn peut transmettre un chemin en premier paramètre :
http://localhost/laravel/public/testLe deuxième paramètre sert à passer des éléments pour l'URL :
http://localhost/laravel/public/test/article/idLe troisième paramètre sert à passer en mode sécurisé :
https://localhost/laravel/public/testMais vous obtenez le même résultat plus simplement avec la méthode secure_url :
XXIII-A-2-b. Méthode « route »▲
La méthode route permet de générer un URL pour une route :
http://localhost/laravel/public/loginLe deuxième paramètre permet d'ajouter des paramètres pour la route :
http://localhost/laravel/public/login?nom=DupontXXIII-A-2-c. Méthode « action »▲
Supposons que vous avez un contrôleur nommé LivresController et une action create, entrez ce code dans les routes :
http://localhost/laravel/public/livres/createVous pouvez ajouter des paramètres :
Route::get('/', function() {
    return action('LivresController@create', array('nom' => 'Dupont', 'prenom' => 'Albert'));
});http://localhost/laravel/public/livres/create?nom=Dupont&prenom=AlbertXXIII-A-2-d. Méthode « asset »▲
La méthode asset permet de générer un URL pour les assets (ressources), par exemple :
Résultat :
http://localhost/laravel/public/assets/css/mon_css.cssUn deuxième paramètre, par défaut à null, permet de passer en protocole sécurisé :
Résultat :
https://localhost/laravel/public/assets/css/mon_css.cssVous pouvez obtenir le même résultat avec la méthode secure_asset :
XXIII-A-3. Les liens▲
XXIII-A-3-a. Méthode « link_to »▲
La méthode link_to permet de créer un lien :
<a href="http://localhost/laravel/public/test">http://localhost/laravel/public/test</a>Vous pouvez définir le titre avec le deuxième paramètre :
<a href="http://localhost/laravel/public/test">titre</a>Le troisième paramètre permet d'ajouter des attributs :
Route::get('/', function() {
    return link_to('test', 'titre', array('class' => 'deco'));
});<a href="http://localhost/laravel/public/test" class="deco">titre</a>Le quatrième paramètre (normalement à null) permet de passer en mode sécurisé :
Route::get('/', function() {
    return link_to('test', 'titre', array('class' => 'deco'), true);
});<a href="https://localhost/laravel/public/test" class="deco">titre</a>XXIII-A-3-b. Méthode « link_to_route »▲
La méthode link_to_route permet de créer un lien vers une route nommée :
<a href="http://localhost/laravel/public/login">http://localhost/laravel/public/login</a>Vous pouvez définir le titre avec le deuxième paramètre :
<a href=">http://localhost/laravel/public/login">titre</a>Le troisième paramètre permet d'ajouter des attributs :
Route::get('/', function() {
    return link_to_route('log', 'titre', array('class' => 'deco'));
});<a href=">http://localhost/laravel/public/login" class="deco">titre</a>Le quatrième paramètre (normalement à null) permet de passer en mode sécurisé :
Route::get('/', function() {
    return link_to_route('log', 'titre', array('class' => 'deco'), true);
});<a href=">https://localhost/laravel/public/login" class="deco">titre</a>XXIII-A-3-c. Méthode « link_to_action »▲
La méthode link_to_action permet de créer un lien vers une action d'un contrôleur :
<a href="http://localhost/laravel/public/livres/create">http://localhost/laravel/public/livres/create</a>Vous pouvez définir le titre avec le deuxième paramètre :
Route::get('/', function() {
    return link_to_action('LivresController@create', titre);
});<a href="http://localhost/laravel/public/livres/create">titre</a>Le troisième paramètre permet d'ajouter des paramètres :
Route::get('/', function() {
    return link_to_action('LivresController@create', 'titre', array('nom' => 'Dupont'));
});<a href="http://localhost/laravel/public/livres/create?nom=Dupont">titre</a>Le quatrième paramètre permet de passer des attributs :
Route::get('/', function() {
    return link_to_action('LivresController@create', 'titre', array(), array('class' => 'deco'));
});<a href="http://localhost/laravel/public/livres/create" class="deco">titre</a>XXIII-A-4. Les chaînes de caractères▲
XXIII-A-4-a. Méthode « starts_with »▲
On peut savoir si une chaîne commence par une autre chaîne en utilisant la méthode starts_with :
bool(true)Le paramètre peut être un tableau :
Route::get('/', function() {
    return var_dump(starts_with('autoroute', array('au', 'uy')));
});Dans ce cas il suffit que l'un des éléments corresponde pour obtenir true.
XXIII-A-4-b. Méthode « ends_with »▲
Cette méthode est équivalente à la précédente, mais cette fois on teste la présence d'une chaîne à la fin d'une autre :
Il est aussi possible de passer un tableau comme paramètre.
XXIII-A-4-c. Méthode « str_contains »▲
Avec cette méthode on peut savoir si une chaîne en contient une autre, quel que soit l'emplacement (début, milieu ou fin) :
bool(true)Il est aussi possible de passer un tableau comme paramètre.
XXIII-A-4-d. Méthode « str_is »▲
Cette méthode nous précise si une chaîne correspond à un certain masque :
Route::get('/', function() {
    return var_dump(str_is('assets/*', 'assets/css/main.css'));
});bool(true)XXIII-A-4-e. Méthode « str_random »▲
Cette méthode génère une chaîne aléatoire, par défaut elle comporte seize caractères :
XBe1bd4PwFCGEq4iOn peut ajouter un deuxième paramètre pour définir le nombre de caractères :
arKEVOLXkCCette méthode ne doit pas être utilisée pour le chiffrement !
XXIII-A-4-f. Méthode « snake_case »▲
Cette méthode permet de passer une chaîne en snake_case :
ma_classeRemarquez que vous pouvez aussi changer le séparateur :
ma-classeXXIII-A-4-g. Méthode « camel_case »▲
C'est la méthode inverse de la précédente :
maClasseXXIII-A-4-h. Méthode « e »▲
Cette méthode utilise la méthode htmlentities avec l'option ENT_QUOTES avec l'encodage UTF-8 :
Elle affiche :
L'enfant est <strong>gros</strong>Avec ce code HTML :
L'enfant est <strong>gros</strong>XXIII-A-4-i. Méthode slug▲
Cette méthode transforme une phrase en chaîne utilisable pour un URL :
ma-phrase-pas-evidenteXXIII-A-4-j. Méthode title▲
Cette méthode met des majuscules aux mots :
Ma Phrase Pas ÉvidenteXXIII-A-4-k. Méthode finish▲
Cette méthode ajoute une fin chaîne :
Ma phrase pas évidente.XXIII-A-4-l. Méthode limit▲
Cette méthode limite la longueur d'une chaîne :
Ma phrase...On peut choisir le style de fin ajouté avec un troisième paramètre :
Route::get('/', function() {
    return str_limit("Ma phrase pas évidente", 10, ' !!!');
});Ma phrase !!!XXIII-A-4-m. Méthode words▲
Cette méthode limite le nombre de mots d'une chaîne :
Ma phrase pas...On peut choisir le style de fin ajouté avec un troisième paramètre :
Route::get('/', function() {
    return Str::words("Ma phrase pas évidente", 3, ' !!!');
});Ma phrase pas !!!XXIII-A-5. Les tableaux▲
XXIII-A-5-a. Méthode « array_divide »▲
Cette méthode permet de séparer un tableau en deux tableaux : l'un avec les clés et l'autre avec les valeurs :
XXIII-A-5-b. Méthode « head »▲
Cette méthode retourne le premier élément d'un tableau :
int(1)En fait c'est la méthode reset de PHP qui est utilisée.
XXIII-A-5-c. Méthode « last »▲
Cette méthode retourne le dernier élément d'un tableau :
int(3)XXIII-A-5-d. Méthode « array_dot »▲
Cette méthode aplatit un tableau multidimensionnel en concaténant les clés en utilisant un point :
2.
3.
4.
5.
6.
array(4) { 
    ["0.0"]=> string(1) "0"
    ["0.1"]=> string(1) "1"
    ["1.0"]=> string(1) "a"
    ["1.1"]=> string(1) "b"
}
XXIII-A-5-e. Méthode « array_fetch »▲
Cette méthode fait l'inverse de la précédente :
2.
3.
4.
5.
6.
array(4) { 
    [0]=> string(1) "0"
    [1]=> string(1) "1"
    [2]=> string(1) "a"
    [3]=> string(1) "b"
}
XXIII-A-5-f. Méthode « array_flatten »▲
Cette méthode aplatit un tableau multidimensionnel :
2.
3.
4.
5.
6.
array(4) { 
    [0]=> string(1) "0"
    [1]=> string(1) "1"
    [2]=> string(1) "a"
    [3]=> string(1) "b"
}
XXIII-A-5-g. Méthode « array_first »▲
Cette méthode permet de trouver le premier élément d'un tableau, qui correspond à un test passé par une fonction de rappel :
int(1)XXIII-A-5-h. Méthode « array_only »▲
Cette méthode extrait des éléments d'un tableau à partir d'un tableau de clés et retourne un tableau :
2.
3.
4.
array(2) { 
    ["deux"]=> int(2) 
    ["quatre"]=> int(4)
}
XXIII-A-5-i. Méthode « array_except »▲
Cette méthode extrait des éléments d'un tableau à partir d'un tableau de clés et retourne un tableau en excluant les éléments dont les clés sont transmises :
2.
3.
4.
array(2) { 
    ["un"]=> int(1) 
    ["trois"]=> int(3)
}
XXIII-A-5-j. Méthode « array_get »▲
Cette méthode récupère un élément d'un tableau en utilisant la syntaxe avec un point séparateur :
string(1) "a"XXIII-A-5-k. Méthode « array_set »▲
Cette méthode affecte une valeur à un élément d'un tableau en utilisant la syntaxe avec un point séparateur :
XXIII-A-5-l. Méthode « array_forget »▲
Cette méthode supprime un élément d'un tableau en utilisant la syntaxe avec un point séparateur :
XXIII-A-5-m. Méthode « array_pull »▲
Cette méthode supprime un élément d'un tableau en utilisant la syntaxe avec un point séparateur et renvoie cette valeur :
Au retour on a la valeur retirée 'a'.
XXIII-A-5-n. Méthode « array_pluck »▲
Cette méthode crée un tableau avec les valeurs qui ont la même clé, et qui ont été récupérées dans des tableaux emboîtés (bon c'est plus simple quand on regarde l'exemple 
) :
2.
3.
4.
array(2) { 
  [0]=> string(2) "un"
  [1]=> string(4) "deux"
}


