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/public
On peut transmettre un chemin en premier paramètre :
http://localhost/laravel/public/test
Le deuxième paramètre sert à passer des éléments pour l'URL :
http://localhost/laravel/public/test/article/id
Le troisième paramètre sert à passer en mode sécurisé :
https://localhost/laravel/public/test
Mais 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/login
Le deuxième paramètre permet d'ajouter des paramètres pour la route :
http://localhost/laravel/public/login?nom=Dupont
XXIII-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/create
Vous 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=Albert
XXIII-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.css
Un 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.css
Vous 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 :
XBe1bd4PwFCGEq4i
On peut ajouter un deuxième paramètre pour définir le nombre de caractères :
arKEVOLXkC
Cette 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_classe
Remarquez que vous pouvez aussi changer le séparateur :
ma-classe
XXIII-A-4-g. Méthode « camel_case »▲
C'est la méthode inverse de la précédente :
maClasse
XXIII-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-evidente
XXIII-A-4-j. Méthode title▲
Cette méthode met des majuscules aux mots :
Ma Phrase Pas Évidente
XXIII-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
"
}