Chez ZeGuigui

Le blog d'un geek chasseur de licornes au clair de lune

Chez ZeGuigui
Technique

Mise en page de mes sites web

Introduction

Si comme moi vous aimez le PHP et que vous le mettez à toutes les sauces sur votre site web, vous vous êtes certainement posé un certain nombre de questions. Je vais donc essayer ici de donner quelques éléments de réponses… qui ne sont pas exhaustifs mais seulement ce que j’ai personnellement retenu comme solution.

Avoir son site web sur son PC et sur Free

Je n’ai pas encore l’ADSL et donc je ne suis pas connecté en permanence à Internet. Or il faut bien tester son site perso pour se rendre compte de ce qu’il va donner. J’ai testé plusieurs solutions :

  • Apache + PHP
  • IIS + PHP
  • PWS + PHP

Apache est la solution qui se rapproche le plus de la configuration de Free. Pourquoi Free ? Parce que c’est un hébergeur français (comme moi) qui propose PHP (à l’exception de la fonction mail()), 100 Mo d’espace disque et qui est très rapide.

Cependant comme vous pouvez le constater Apache n’est pas obligatoire. J’ai réussi à faire fonctionner mes sites web avec IIS (serveur Web de Microsoft sous NT/Windows 2000) et sous PWS (version de IIS adapté à windows 98 et ME). Cependant le but de cette page n’est pas d’expliquer comment faire fonctionner PHP avec ces serveurs web. D’autre sites le font très bien !

Ma configuration personnelle est PHP 4.0.5. Ce choix peut parraître surprenant étant donné que Free fonctionne toujours en version 3. Cependant avec un peu de rigueur et en regardant dans la doc à partir de quelle version une fonction est valide on s’en sort très bien. J’ai modifié le fichier php.ini et la configuration de mon serveur pour accepter les extensions .php et .php3. Cette dernière est la seule utilisable sur free (pour le moment bien entendu).

Je n’ai pas installé MySQL (ce qui est une grave erreur ;-)) mais c’est en projet. Donc pour le moment mes scripts fonctionnent avec base sur free et sans base de données chez moi… Ce qui n’est pas trop grave !

Gestion des Includes

Une des force de PHP est de pouvoir faire des include et des require. La différence entre ces deux fonctions est expliquée dans la FAQ du newsgroup français consacré à PHP et je vous conseille fortement de la lire.

Cependant, je gère plusieurs sites web… Donc l’utilisation de chemins absolus dans mes includes même si elle fonctionne parfaitement sur le site de free ne me convient vraiment pas. Donc je m’arrange toujours pour que mes includes soient relatifs.

A un moment j’avais pensé utiliser la variable $PHP_SELF avec une fonction pour extraire la "racine" de mon site. Ca fonctionnait parfaitement sur mon PC mais je me suis aperçu par la suite que $PHP_SELF prenait des valeurs "étranges" chez Free… et avec PHP4 configuré en module sur apache c’est pas mieux 😉

Ma solution est donc toute simple. En début de chaque page j’identifie une variable $srcInclude que je positionne sur un répertoire dans lequel je stocke mes fichiers à include. Ensuite ça va tout seul.

Mise en page du site

Pour la mise en page de mes sites, je suis parti d’une constatation simple : la structure des fichiers HTML est toujours la même :

  • Début de page HTML (principalement le doctype et la balise <HTML>)
  • Début de la section <HEAD> avec scripts, feuille de style, etc.
  • Fin de la section <HEAD>
  • Début de la section principale (<BODY>)
  • Fin de la section principale
  • Fin de la page HTML

Je crée donc un fichier PHP par section… ou presque 😉 En effet entre la fin du HEAD et le début du BODY on n’ajoute généralement pas de code HTML.

Exemple

Par exemple, cette page web a la structure suivante :

<?php
 $srcInclude = "../include";
 $pageTitle = "Includes sur Free";
 require ("$srcInclude/dpage.inc");
?>
<html>
<head>
<?php
 require ("$srcInclude/head.inc");
?>
</head>
<body>
<?php
 require ("$srcInclude/dbody.inc");
?>
<p>Mes explications...</p>
<?php
 require ("$srcInclude/fbody.inc");
?>
</body>
</html>
<?php
 require ("$srcInclude/fpage.inc");
?>

Vous remarquerez que j’ai choisi, pour ce site, de laisser les balises HEAD et autres dans mon code… Je trouve que ça en simplifie la lecture tout en n’empêchant pas des effet de fond de page grâce aux feuilles de style (pourvu que le navigateur soit assez récent)… qui sont incluses dans le fichier head.inc (à noter aussi qu’il manque le DOCTYPE dans cet exemple !).

Avantages de ce système

L’avantage principal de ce système est de séparer le contenu de la présentation chez un prestataire proposant le PHP. En effet tout le monde n’a pas de prestataire proposant XML, XPATH, XMLT, XSL et autres ! L’autre avantage c’est que la présentation est gérée par PHP… et autorise donc tout un tas de trucs sympas comme :

  • citation du jour (dans une base de données par exemple)
  • anniversaire du jour
  • modification de l’aspect du site en fonction de paramètres comme, par exemple :
    • préférences de l’utilisateur stockées dans un cookie (site msit.org par exemple)
    • la date du jour (si la date est le 25 décembre alors utiliser tels fichiers)
    • la résolution de l’écran (plus complexe… nécessite javascript).

Comme tous les fichiers sont appelés à chaque page il est également possible d’appeler une fonction à chaque fois (utilisation possible : statistiques de visite stockées en base).

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.