Options de configuration
Le fichier de configuration permet de fixer des options importantes. Dans certains cas, un mauvais param&trage de ces options peut entraîner un mauvais fonctionnement du processeur, ou son incapacité à effectuer le process de production des pages. C'est par exemple le cas sur un système Unix, si les options activées entrent en contradiction avec les polices de droits pour les créations de fichiers.
PHP | $ESSI_root |
Valeurs | chemin_vers_racine_absolue |
La racine absolue ou "DocumentRoot" du serveur contenant les pages redirigées vers ce moteur. Notez que cette version de processeur n'est pas directement capable de travailler sur des volumes aliasés, à moins qu'ils n'aient été explicitement définis par la variable $aliases du fichier de configuration.
(La raison vient du module Apache de réécriture d'URL mod_rewrite, qui ne permet que la récupération de l'URI relative de la page DIML visée, et laisse supposer qu'elle est physiquement située par rapport à la racine).
PHP | $ESSI_Straight |
PERL | $main::STRAIGHT |
Valeurs | true|false|redirect |
Si ESSI_Straight vaut "true", cela indique que le processeur DIML est appelé explicitement par son
URL de script. La page DIML à traiter doit alors être fournie par un paramètre CGI
"ESSI_TARGET" et doit être relative à DocumentRoot.
Si ESSI_Straight vaut "false", cela indique que le processeur est appelé implicitement, sur paramétrage d'un type MIME adéquoit (x-application/essi-parsed).
Une valeur "redirect" indique au processeur qu'il est invoqué par redirection. C'est toujours le cas en PHP.
PHP | $ESSI_StraightBackPath |
PERL | $main::STRAIGHT_BACKPATH |
Valeurs | chemin_relatif_vers_DocumentRoot |
Au cas où le processeur est invoqué directement, il aura besoin de connaître la position exacte du DocumentRoot par rapport au chemin ou se situe le lanceur CGI. Ce chemin est donné relativement à la position courante du script ESSI.pl. Par exemple, si ce script est situé dans le répertoire /wwwroot/cgi-bin/essi_processor/ et si DocumentRoot vaut /wwwroot, alors la valeur correcte de ce paramètre est "../../".
PHP | $ESSI_Standalone |
PERL | $main::STANDALONE |
Valeurs | true|false |
Doit être mise à "true" uniquement si le processeur est utilisé comme librairie
d'un autre programme. Ce commutateur permet notamment d'inhiber l'analyse des paramètres
CGI en entrée par le processeur (ils sont supposés fournis).
PHP | $ESSI_NoInvoke |
PERL | $main::NOINVOKE |
Valeurs | true|false |
Une option essentielle de sécurité, pour les sites qui veulent autoriser l'emploi des fonctions
paramétriques du DIML, sans autoriser toutefois le scripting "open". C'est une bonne pratique pour
permettre aux utilisateurs s'avoir accès à un ensemble de primitives "semi-dynamiques" sans mettre en
danger son serveur par l'activation de scripts "hors contrôle". A "true", l'invocation de scripts externes
est désactivée.
PHP | $ESSI_TraceLevel |
PERL | $main::TRACE_LEVEL |
Valeurs | 0 - 30 |
Détermine le niveau de trace. La trace du DIML permet le contrôle de points de passage du moteur, des scripts additionnels, jusqu'à un examen complet de chaque opération du processeur. Un niveau de trace à 0 ne crée pas de fichier de trace et aucune trace n'est effectuée. La précision de la trace dépend de son niveau. Plus le niveau est élevé, plus la trace est précise, et donc lourde à générer (et à exploiter). On peut donner rapidement quelques niveaux clefs :
- 0 : Pas de trace
- 1 : Le processeur ecrit ses en-têtes (version, addresse dela page exécutée, heure)
- 2 : Ajoute les variables connues
- 4 : Donne les variables et les exécutions additionnelles. Des sorties de trace de niveau 1, 2, 3 dans des scripts additionnels sortent dans la trace (débug de scripts applicatifs).
- 5 : Le processus de construction de la page est explicité (parsing individuel des instructions), sous forme d'une trace récursive auto-indentée.
PERL | $main::TRACE_TOPICS |
Valeurs | liste_de_themes |
Actuellement disponible qu'en Perl, cette variable de configuration permet de sélectionner des sorties de trace indépendamment du niveau de trace, par sélection d'un critère fonctionnel. Ce champ peut contenir une liste de thèmes séparés par des virgules. Chaque thème peut être "négativé" par un caractère "!", auquel cas toute sortie d'un message pour ce thème est exclue, même si le niveau de trace le permet. Les conditions de sorties d'un message appartenant à une catégorie citée sont : la trace doit exister (TRACE_LEVEL > 0) ET [ le thème n'est pas négativé OU la sortie est d'un niveau accepté ].
PHP | $ESSI_MaxDepth |
PERL | $main::MAX_SCAN_DEPTH |
Valeurs | entier |
Typique | 20 |
Règle un mécanisme qui permet d'éviter une récursion infinie. Si par exemple un template <%%A%%> s'appelle lui, même, soit directement, soit au bout de plusieurs imbrications intermédiaires, le processus peut devenir infini. Cette valeur indique combien de profondeur de pile l'imbrication de substitution autorise. En 5 ans d'exploitation, nous n'avons jamais atteint une valeur de 20, mais cette valeur peut dépendre du "style" d'utilisation du DIML par le programmeur. Des templates de type "arbres récursifs" tels que des files de messages de forums, peuvent demander un niveau d'imbrication important.
PHP | $ESSI_OutputType |
PERL | $main::OUTPUT_TYPE |
Valeurs | mime_type |
Défaut | text/html |
Définit la valeur effective du type de contenu de l'entité document produite par le processeur. Cette valeur peut être surchargée dans la page DIML par une redéfinition de la clef %ESSI::OUTPUT_TYPE%.
PHP | $ESSI_LogFileName |
PERL | $main::LOG_FILENAME |
Défaut | essi.log |
Définit le nom du fichier de trace.
Ce nom peut être différencié pour chaque source DIML, par exemple, en
écrivant pour cette valeur :
(PERL)
$doc_name = $ENV{"REDIRECT_URL"};
$doc_name =~ s/.*?([^\/]+)\.[^\/.]+$/$1/;
$main::LOG_FILENAME = "essi_" . $doc_name . ".log";
(ou son équivalent php).
PHP | $ESSI_LogPositionning |
PERL | $main::LOG_POSITIONNING |
Valeurs | relative|absolute |
Si la position du fichier de trace est "relative", alors le fichier de trace est inscrit a un chemin
équivalent au chemin relatif de la page DIML par rapport à DocumentRoot.
Si la position du fichier est déclarée "absolute" et le paramètre LogRoot contient un chemin physique explicite, alors le fichier de trace est enregistré exclusivement dans ce chemin. Ce réglage devrait être évité
sur les serveurs de production, car il concentre tous les accès des instances des processeurs sur un seul fichier (avec le nom de fichier standard).
PHP | $ESSI_LogRoot |
PERL | $main::LOG_ROOT |
Valeurs | chemin_physique |
Défaut | "" |
Fixe la racine absolue pour écrire les fichiers de trace. Si vide, les fichiers de trace seront écrits dans le même répertoire que le source DIML. Si il exprime un chemin non vide, les fichiers seront écrits à un endroit unique (LogPositionning absolute) ou dans un architecture de répertoire parallèle aux sources (LogPositionning false).
PHP | $ESSI_ParsingMarkers |
PERL | $main::PARSINGMARKERS |
Valeurs | on|off |
Sur "off", la reconstruction du HTML de sortie ne présente aucun commentaire de reconstruction. Nous avons en effet noté que certains commentaires situés dans des blocs de règles de style pouvaient fausser l'interprétation de certaines de ces règles sur certaines versions de navigateurs. Au cas ou de tels problèmes apparaissent, laisser cette option sur "off".
PHP | $ESSI_TimeBenchFile |
PERL | $main::TIME_BENCH_FILE |
Valeurs | nom_fichier |
Défaut | essi.bnc |
Donne le nom du fichier de mesure de temps de calcul. Ce fichier s'écrit uniquement dans le même répertoire que le source DIML. Il est nécessaire d'autoriser l'écriture dans ces répertoires. Pour des raisons de sécurité, il est donc déconseillé d'utiliser cette fonctionnalité sur un serveur d'exploitation.
Le calcul des temps en version PERL s'appuie sur le module Time::Hires.
PHP | $ESSI_TimeBench |
PERL | $main::TIME_BENCH |
Valeurs | on|off |
Active ou désactive le calcul de temps.
PHP | $ESSI_LoadedModules |
PERL | @main::LOADED_MODULES |
Valeurs | tableau_de_noms_de_modules |
Un tableau permettant le chargement de modules d'extension de la syntaxe d'instructions DIML. Le tableau adoptera la syntaxe du langage porteur (PHP ou PERL) :
En PHP :
$ESSI_LoadedModules = array("ESSISql", "ESSIXml");
En Perl :
@main::LOADED_MODULES = ("ESSISql", "ESSIXml");
PHP | $ESSI_ImportFirstMatch |
Valeurs | on|off |
Optimisation d'import :
Lorqu'activé, et lorsque la partie template du motif d'import ne contient pas de métacaractères, le premier template correspondant trouvé dans le source arrète la recherche.
PHP | $ESSI_Aliases |
Valeurs | on|off |
Aliases :
Une redéclaration explicite des alias est nécessaire en PHP du fait de la méthode de réécriture des URL par le module mod_rewrite d'Apache. Comme la réécriture est effectuée avant toute résolution physique, Apache ne peut transmettre au Preprocesseur la position physique de la ressource. Le préprocesseur est donc obligé de travaillier avec un URI partiel, et doit effectuer à son tour l'aliasing.
Sur "on", le système d'aliasing du preprocesseur est activé.
PHP | $ESSI_Alias |
Valeurs | tableau_associatif_d'aliases |
Si l'aliasing est activé, alors ce tableau associatif doit contenir une définition pour chaque alias
déclaré dans le serveur Web et où des fichiers DIML php doivent être exécutés.
Par exemple :
$ESSI_Alias['/diml/'] = "/diml_new/";
All material is copyleft V.G. FREMAUX (EISTI France) 1999 to 2003 except explicitly mentioned
|