Composite, simple générateur de site statique

Le générateur de site statique le plus simple pour composer un site puis le mettre en ligne.

Composite, générateur de site statique

Composite est un script PHP qui exécute localement toutes les tâches de composition de page, avant de les transférer sur le serveur où elle fonctionneront comme de simple pages HTML.

Cela permet principalement de réutiliser le même en-tête et pied de page, avec des variables PHP assignées dans chaque page selon le contenu de celles-ci.
Par exemple, le titre et la description des articles sont assignés dans chaque page, ils sont insérés par Composite dans l'en-tête lors de la mise en ligne.

Cas des fichiers PHP interagissant avec le serveur

Les fichiers PHP qui sont appelés par les pages du site pour par exemple consulter ou modifier une base de donnée, ne doivent pas être traités comme les pages statiques. Il y a deux moyens de faire la distinction :

1) Par l'extension.

Par défaut le script compose des pages avec l'extension HTML (que vous pouvez changer). Donc les pages d'extension PHP qui doivent s'exécuter sur le serveur (ou autre langage coté serveur), seront transférées directemment sans exécution locale.
Seules les pages avec l'extension HTML sont exécutées localement. A moins que vous n'ayez choisi une extension différente.

1) Avec un répertoire séparé

Vous pouvez par exemple placer les pages du site dans exemple.com et les pages de fichiers exécutables sur le serveur dans exemple.php.

Le contenu du répertoire exemple.com sera mis en ligne par Composite.
Le contenu du répertoire exemple.php peut être mis en ligne par Composite avec l'option -u, ou avec FTP Syncrhonizer.

Composite transfère seulement les fichiers modifiés ou les nouveaux fichiers dans le répertoire local.
Lors de la première utilisation ou avec l'option -a tous les fichiers sont transférés.

Les fichiers transférés par Composite sur le serveur sont aussi copiés dans un répertoire de sauvegarde (dans leur état originel avant exécution du code). Le programme compare chaque fichier dans le répertoire local avec avec le répertoire backup et sait ainsi lesquels ont été modifiés.

Mode d'emploi

La commande suivante composera les pages contenues dans le répertoire local exemple.com et les transfèrera par FTP sur le serveur:

php composite.php -lxxxxx -pxxxx c:\exemple.com -fxxxx -dexemple.com/ -bd:\exemple.com -wexemple.com %1 

Il est préférable de placer la commande dans un fichier batch, sur Windows ce peut être:

exemple.bat 

L'option %1 dans la commande permet d'ajouter des paramètres supplémentaires si besoin, comme -t pour faire un test préalable.

exemple.bat -t

Paramètres et options :

Exemple de template

Dans cet exemple, nous avons un fichier header.html et footer.html qui sont communs à toutes les pages du site.
Chaque page contient des variables PHP utilisées par ces deux fichiers à inclure pour renseigner les balises.

header.html

<!DOCTYPE html>
 <html lang="fr">
 <head>
  <meta charset="UTF-8">
  <title><?php echo $title?></title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
  <meta name="description" content="<?php echo $description ?>">
  <link rel="stylesheet" href="https://exemple.fr/exemple.css">
</head>
<body>
 <div id="header">
  <a href="https://exemple.fr/">
   <div id="logo"><img src=""></div>
  </a>
 </div>
</div>  

footer.html

<div>
© Copyright <?php echo $date;?>
</div>
</body>
</html>

page.html

<?php
    $title="";
    $description="":
    define('ROOT_PATH', $argv[1]);
    include(ROOT_PATH.'/header.html');
?>
<div id="content">
  <h1><?php echo $title?></h1>
  <p><?php echo $description?></p>
  
  <?php
    $date="2026";
    include(ROOT_PATH.'/footer.html');
  ?>
</div>

Télécharger le script

composite.zip

Licence GPL 2.0.

Exemple de site utilisant composite:

Webscript.fr.

Voir aussi: