Pensez alternative (et short echo tag)
par
, 27/05/2022 à 10h57 (2771 Affichages)
Une des grandes forces de PHP est sa possible intégration au HTML d'une page web. Cette force est aussi une faiblesse lorsqu'elle est mal utilisée.
Tous les projets ne nécessitent pas une architecture MVC ou un framework tel Laravel, néanmoins ils méritent tous une programmation propre, lisible et maintenable. Pour cela, un bon début, simple à mettre en œuvre, tient en seulement trois grands principes :
- Ne jamais afficher de HTML avec PHP, ne pas faire de traitement PHP dans la partie HTML
- Utiliser la balise ouvrante echo courte, dite short echo tag
- Utiliser la syntaxe alternative des structures de contrôle
Un script d'un cas classique, affichant un formulaire de connexion ou une table de données, tel que celui-ci :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 <?php include 'inc/settings.php'; include 'inc/connection.php'; ?> <!doctype html> <html> <head>...</head> <body> <?php if (user_connected()) { ?> <form> ... </form> <?php } else { $data = get_data(); if ($data !== null) { ?> <table> <tr> <th>Header-1</th> <th>Header-2</th> </tr> <?php foreach ($data as $row) { echo '<tr>'; echo "<td>{$row->column1}</td>"; echo "<td>{$row->column2}</td>"; echo '</tr>'; } echo '</table>'; } else { echo '<p>Serveur MySQL injoignable<pp>'; } } ?> </body> </html>
Peut ainsi être reformulé plus clairement ainsi :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?php include 'inc/settings.php'; include 'inc/connection.php'; $data = get_data(); ?> <!doctype html> <html> <head>...</head> <body> <?php if (user_connected()): ?> <form> ... </form> <?php elseif ($data === null): ?> <p>Serveur MySQL injoignable</p> <?php else: ?> <table> <tr> <th>Header-1</th> <th>Header-2</th> </tr> <?php foreach ($data as $row): ?> <tr> <td><?= $row->column1 ?></td> <td><?= $row->column2 ?></td> </tr> <?php endforeach ?> </table> <?php endif ?> </body> </html>
Grâce aux endif et endforeach on sait immédiatement quel bloc est fermé. Les short open tags rendent le HTML plus clair et responsabilise PHP sur l'affichage de données uniquement. On se rapproche d'une Vue.
La syntaxe alternative est disponible pour if, foreach, for, while et switch.
do ne supporte pas de syntaxe alternative ; la syntaxe alternative de switch est tellement contraignante qu'on peut la considérer comme inutilisable et l'oublier
Astuce pour alléger le code : le short echo tag ne nécessite pas de ";" final.