DY

05 PHP en mode serveur

Dans les TPs précédents nous avons découvert PHP, sa syntaxe et ses structures de données. Avant cela nous avions découvert le couple HTML/CSS qui nous permet de créer des pages statiques. Nous allons découvrir dans ce tp comment générer nos pages html grâce à PHP.

Avertissement

Cette méthode de développement « historique » n'est de nos jours plus utilisée. Il s'agit une mauvaise pratique de développement qui conduit à la création de site web souvent buguée, peu voir pas maintenable et surtout donc le code source est un gloubi-boulga de code PHP, SQL et HTML.

Cette (mauvaise) façon de faire ne vous est présenté que pour découvrir l'utilisation du serveur de développement intégré à PHP et pour vous sensibiliser à d'anciennes pratiques de développement.

Le serveur de développement embarqué

PHP intégre nativement un serveur de développement (depuis la version 5) qui permet facilement et rapidement de monter un serveur de développement pour tester son site web lors de la phase de développement.

$ php -S 127.0.0.1:5000

La commande précédente lance un serveur de développement qui aura pour racine le dossier courant.

Premier exemple

Voici le contenu du fichier index.html:

<h1>It works!</h1>
<a href="hello.html">Go to hello page</a>

et le contenu du fichier hello.html

<img src="https://www.delahayeyourself.info/static/img/hellothere.gif" alt="Hello there!">
<a href="index.html">Go to index page</a>

Deuxième exemple avec un peu de code

<h1>It works!</h1>
<p><?php 
    printf("Today is %s", date("Y/m/d"));
?><p>
<a href="hello.html">Go to hello page</a>

Quelques données

Dans un fichier data.php créez un tableau arr_articles contenant plusieurs articles:

Voici le début du tableau

<?php
    $arr_articles = array();
    $arr_articles[0] = array(
        'title' => 'Useless title',
        'description' => 'Description ..',
        'author' => 'John Doe',
    );

Dans le fichier articles.php:

Il peut vous être utile de connaître la syntaxe alternative des structures de contrôle en PHP. Le principe est de remplacer l'accolade d'ouverture par deux points (:) et l'accolade de fermeture par endif; , endwhile; , endfor; , endforeach; , ou endswitch; .

Par exemple:

<ul>
    <?php for($i=0; $i<10; $i++): ?>
        <li><?php echo $i; ?></li>
    <?php endfor; ?>
</ul>

<?php foreach($persos as $perso): ?>
    <h2><?php printf("Name: %s", $perso['name']); ?></h2>
<?php endforeach; ?>

L'intéret de cette syntaxe est de rendre votre mélange de PHP et d'HTML un peu plus lisible.

Rappel HTML5

Squelette de base HTML5

<!DOCTYPE html>
<html>
    <head>
        <title>..</title>
        <meta charset='utf-8' />
    </head>
    <body>
        <header>
        </header>
        <main>
        </main>
        <footer>
        </footer>
    </body>
</html>

Squelette de base d'un article en HTML5

<article>
    <h3>..</h3>
    <img src='..' alt='..' />
    <p>..</p>
    <a href='..' title='..'>Lire la suite</a>
</article>