Imports de règles
Modèles publicodes
Les projets Publicodes v2 sont structurés par dossier que l’on appelle
modèle. Le mécanisme importer permet d’importer un modèle depuis un autre.
Structurer un projet en plusieurs modèles permet de factoriser des expressions
pour, par exemple, les réutiliser.
Lorsque le paquet n’est pas précisé, les modèles sont recherchés depuis le paquet courant, ou depuis l’espace de travail courant dans le cas du paquet racine (détails plus loin). Seules les rêgles qui sont publiques, ou qui sont des dépendances d’autres rêgles publiques, sont référencable via l’import.
Loading editor...
modèle 1: importer: modèle 1 rêgle a: valeur: modèle 1 . rêgle b
- Erreur syntaxique ➡️ Dans la règle "rêgle a" ✖️ La référence "modèle 1 . rêgle b" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
modèle 2: importer: modèle 1/modèle 2 rêgle b: valeur: modèle 2 . rêgle c public: oui
- Erreur syntaxique ➡️ Dans la règle "rêgle b" ✖️ La référence "modèle 2 . rêgle c" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
rêgle c: valeur: 10 public: oui
Paquets publicodes
Les paquets Publicodes permettent de réutiliser des modèles publicodes
dans plusieurs projets. La forme la plus verbeuse de importer permet
d’importer un modèle depuis un autre paquet.
Ici un exemple avec PUBLICODESPATH=vendor :
Loading editor...
modèle 1:
importer:
# Forme verbeuse pour importer depuis un autre paquet
# ici la cible "vendor/paquet 1/modèle 1/".
modèle: modèle 1
paquet: paquet 1
rêgle a:
valeur: modèle 1 . regle b- Erreur syntaxique ➡️ Dans la règle "rêgle a" ✖️ La référence "modèle 1 . regle b" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
modèle 2: # Forme non-verbeuse pour importer depuis le même paquet # ici "vendor/paquet 1/modèle 2/" importer: modèle 2 rêgle b: valeur: modèle 2 . rêgle c public: oui
- Erreur syntaxique ➡️ Dans la règle "rêgle b" ✖️ La référence "modèle 2 . rêgle c" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
rêgle c: valeur: 10 public: oui
Sucres syntaxiques
Il est possible d’utiliser le préfixe ./ dans le nom d’un modèle pour le
rechercher depuis le dossier du modèle courant. Ce sucre syntaxique permet
de racourcir le chemin des modèles, dans le cas d’arborescences plus profondes.
Loading editor...
modèle 1: importer: modèle 1 rêgle a: valeur: modèle 1 . rêgle b
- Erreur syntaxique ➡️ Dans la règle "rêgle a" ✖️ La référence "modèle 1 . rêgle b" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
modèle 2: importer: ./modèle 2 rêgle b: valeur: modèle 2 . rêgle c public: oui
- Erreur syntaxique ➡️ Dans la règle "rêgle b" ✖️ La référence "modèle 2 . rêgle c" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
rêgle c: valeur: 10 public: oui
Vendors imbriqués
Ce préfixe ./ peut aussi être utilisé avec les chemins du PUBLICODESPATH,
et cela permet de rechercher les paquets de manière imbriquée. Par exemple
pour supporter les node_modules en mode nested, avec PUBLICODESPATH=./node_modules:node_modules:
Loading editor...
modèle 1:
importer:
modèle: modèle 1
paquet: paquet 1
rêgle a:
valeur: modèle 1 . regle b- Erreur syntaxique ➡️ Dans la règle "rêgle a" ✖️ La référence "modèle 1 . regle b" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
modèle 2:
importer:
# Ce paquet contient son propre dossier "node_modules",
# et celui-ci contient un paquet "paquet 2".
modèle: modèle 2
paquet: paquet 2
rêgle b:
valeur: modèle 2 . rêgle c
public: oui- Erreur syntaxique ➡️ Dans la règle "rêgle b" ✖️ La référence "modèle 2 . rêgle c" est introuvable. Vérifiez que l'orthographe et l'espace de nom sont corrects
Loading editor...
rêgle c: valeur: 10 public: oui