PXPros est un pré-processeur qui permet d'amener toute la puissance de PHP à un projet HTML statique. Il peut être utilisé pour créer des rendus de dossiers complets ou encore être utilisé en temps réel un peu comme SASS.
PXPros est un exécutable statique, il n'a besoin d'aucune dépendance. Il suffit de le placer dans dossier qui est dans les paths d'environnement ou encore ajouté son dossier dans les paths. Pour ce faire, pesez sur WIN+R et ensuite exécutez la commande sysdm.cpl
PXPros se configure par projet. Il suffit de créer un fichier JSON (_pxpros.json) à la racine du projet.
Exemple:
data
La propriété data est un objet où vous pouvez y mettre tout ce que vous voulez. Ces données seront accessibles via la variable superglobale $PAGE.
Exemple:
includes
La propriété includes est un tableau contenant les chemins des fichiers que vous voulez inclure à l'initialisation. Ils contiennent généralement toutes les fonctions et les classes que vous utilisez. Si vous utilisez des classes, il est recommandé d'utiliser le loader dynamique spl_autoload_register.
Exemple:
before & after
Les propriétés before et after servent à définir les fichiers d'entête et de pied de page afin que les templates PHP ne contiennent que ce qui sera exécuté dans le corps de la page.
Dans le but d'être compatible avec la configuration de base de Github Pages, les templates PHP doivent commencer par une barre de soulignement (_), exemple _index.php. Ces fichiers commençant par une barre de soulignement sont ignorés par Jekyll lors de la mise en ligne du site par Github Pages.
Entête d'un template PHP
Pour créer les propriétés, il suffit de créer un DOCBLOCK PHP en entête du template. Ces propriétés seront ajoutées à la variable superglobale $PAGE.
Exemple:
La variable superglobale $PAGE contient les informations contenues dans la propriété data du fichier de configuration _pxpros.json situé à la racine du projet ainsi que les propriétés définies par le DOCBLOCK en entête du template PHP en cours de rendu.
root & file
Elle contient aussi les propriétés root et file afin de pouvoir se situer tant de manière absolue que relative face à la racine du projet.
Exemple:
PXPros est très simple d'utilisation. Il peut créer le rendu d'un seul fichier ou encore d'un dossier/sous-dossier. Dans le cas d'un dossier, PXPros le parcourera de manière récursive afin d'y trouver tout les fichiers ayant le pattern _*.php.
Exemple:
En temps réel avec VS Code
Il est aussi possible de créer des rendus avec PXPros en temps réel comme du SASS/SCSS grâce à l'extension Run On Save.
Configuration VS Code:
PXPros est compilé avec la librairie SAPI de PHP. Il contient une version minimale PHP. Pas de MySQL, de Session ou d'autres trucs inutiles.
Vous pouvez consulter la configuration complète ici.