Google Chercher dans diml.org
[ english ]

 Dernières infos
 Une application du composant  WCT_NEWS  
>> Haut de la page

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
Valeurschemin_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
Valeursentier
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
Valeursmime_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
Valeurschemin_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
Valeursnom_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
Valeurstableau_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
Valeurstableau_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