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 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 :
- -1 login, nom d'utilisateur FTP.
- -p password, mot de passe.
- nom du répertoire local où sont stockées les pages et ressources à mettre en ligne.
- -f adresse FTP, adresse sur le serveur une IP ou sous la forme ftp.xxx
- -d répertoire distant sur l'hébergement. Ce peut-être "/", "htdocs", "www", un autre répertoire.
- -b répertoire backup servant à comparer les pages avec les pages déjà transférées.
- -w url du site web.
- -o extension, pour remplacer l'extension par défaut des pages, qui est HTML.
- -r extension, pour l'extension de la page mise en ligne. Par défaut l'extension est inchangée.
- -a transfère tous les fichiers. Suivi d'une extension, transfère tous les fichiers ayant cette extension.
Il est possible de passer plusieurs paramètres -aext pour transférer plusieurs extensions. - -u unchanged, transfère les fichiers sans exécuter localement le code.
- -t tester seulement, rien n'est envoyé sur le serveur , mais affiche ce qui sera fait.
- -s accélérer en omettant le test de validité des liens dans les pages.
Utile quand on a modifié des pages sans modifier les liens qu'elle contiennent. - -v verbose, afficher plus d'information sur ce qui est effectué.
- -q quiet, ne rien afficher.
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
Licence GPL 2.0.
Exemple de site utilisant composite:
Voir aussi:
- FTP Synchronizer. Met à jour le contenu d'un site distant à partir d'un répertoire local. Similaire à Composite, mais met en ligne les pages telles quelles sans exécuter le code PHP.

