Il est de notoriété publique que le principal usage de PHP soit la création dynamique de flux HTML. Mais bien qu'il existe diverses façons de produire et d'afficher ce flux de données, il n'y a pas vraiment de recommandations en la matière, chacun est libre de faire à sa convenance.
Je vous propose donc un petit sondage: quelle méthode employez-vous pour produire votre HTML ?
Traditionnellement, on peut tout simplement décrire son HTML et y insérer des balises spéciales là où on veut du dynamisme. Cette méthode était connue sous le nom de phtml et est d'ailleurs supportée nativement par Apache au même tittre qu'un script PHP classique:

Code PHP : | Sélectionner tout |
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 | <?php $user = "Jean"; $messages = array( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'Cras sit amet mi quis mauris varius dignissim id et ipsum.', 'Quisque id lacus lorem.' ); ?> <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>Mes messages</title> </head> <body> <? if (!isset($user)): ?> <p class="error">Veuillez vous connecter</p> <? else: ?> <h2>Bienvenue <?=$user?></h2> <span>Vous avez <?=count($messages)?> messages en attente</span> <? foreach ($messages as $message): ?> <p class="message"><?=$message?></p> <? endforeach ?> <? endif ?> </body> </html> |
Dans cet exemple, nous nous sommes servi de la syntaxe alternative ainsi que la directive short_open_tag que je trouve beaucoup plus claire et naturelle que l'imbrication d'accolades ouvrantes/fermantes.
On peut également recourir à la structure echo:

Code PHP : | Sélectionner tout |
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 | <?php $user = "Jean"; $messages = array( 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', 'Cras sit amet mi quis mauris varius dignissim id et ipsum.', 'Quisque id lacus lorem.' ); echo '<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>Mes messages</title> </head> <body>'; if (!isset($user)) { echo '<p class="error">Veuillez vous connecter</p>'; } else { echo '<h2>Bienvenue ' . $user . '</h2>', '<span>Vous avez ' . count($messages) . ' messages en attente</span>'; foreach ($messages as $message) { echo '<p class="message">' . $message . '</p>'; } } echo '</body> </html>'; |
Ou encore, on peut utiliser un moteur de template tel que Smarty ou phpBB pour ne citer que les plus connus:

Code PHP : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>Mes messages</title> </head> <body> {if $user} <p class="error">Veuillez vous connecter</p> {else} <h2>Bienvenue {$user}</h2> <span>Vous avez {$messages|@count} messages en attente</span> {foreach ($messages as $message)} <p class="message">{$message}</p> {/foreach} {/if} </body> </html> |
Et vous ?


