mod_macro.xml.fr revision 5f42e12f1d9b59e2b18e7a7d55184d30dca8b067
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<!DOCTYPE modulesynopsis SYSTEM "/style/modulesynopsis.dtd">
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<?xml-stylesheet type="text/xsl" href="/style/manual.fr.xsl"?>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<!-- English Revision: 1436366:1436574 (outdated) -->
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<!-- French translation: Fabien Coelho -->
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin Licensed to the Apache Software Foundation (ASF) under one or more
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin contributor license agreements. See the NOTICE file distributed with
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin this work for additional information regarding copyright ownership.
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin The ASF licenses this file to You under the Apache License, Version 2.0
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin (the "License"); you may not use this file except in compliance with
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin the License. You may obtain a copy of the License at
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin Unless required by applicable law or agreed to in writing, software
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin distributed under the License is distributed on an "AS IS" BASIS,
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin See the License for the specific language governing permissions and
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin limitations under the License.
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<description>Ce module permet d'utiliser des macros dans les fichiers
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinde configuration Apache.</description>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>Ce module permet de définir et d'utiliser des macros dans les fichiers
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin de configuration Apache. Ces macros peuvent avoir des paramètres qui sont
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin expansés à l'utilisation (les paramètres sont remplacés par la valeur
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin passée en argument), et le résultat de la substitution est traité
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin normalement.</p>
72c3c99143571371be76ed3916b19bd3214b4363martin<section id="features"><title>Caractéristiques</title>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> dans une section <Macro> au style homogène à la
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin syntaxe des fichiers de configuration Apache.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> l'utilisateur choisit le nom de la macro et de ses paramètres.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les noms de macro sont insensibles à la casse, comme les directives Apache.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les noms de paramètres sont par contre sensibles à la casse.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les paramètres d'une macro doivent avoir des noms distincts.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> il y a une erreur si un paramètre a un nom vide.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> la redéfinition d'une macro génère un avertissement.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> des définitions de macros peuvent être nichées les unes dans les autres...</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les paramètres inutilisés génèrent un avertissement.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les noms de paramètre en préfixe les uns des autres génèrent un avertissement.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les noms de paramètre non préfixés par '<code>$%@</code>' génèrent un
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin avertissement pour encourager cette bonne pratique.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les différents préfixes proposés permettent de gérer les interactions
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin avec d'autres directives comme <directive module="core">Define</directive>.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> un conseil : il peut être utile d'ajouter des accolades autour du nom d'un
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin paramètre, par exemple <code>${foo}</code>, de manière à ce que le
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin paramètre puisse être utilisée avec des caractères collés autour,
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> génère un avertissement si le contenu de la macro est vide.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> génère un avertissement si le système détecte que les sections à l'intérieur
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin d'une macro ne sont pas correctement nichées.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> la portée lexicale des paramètres d'une macro est restreinte au texte
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin de la macro elle-même... en particulier elle n'est pas propagée aux inclusions.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> il n'y a pas de contrainte sur le contenu d'une macro.
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>Cela signifie que vous pouvez mettre une section perl ou n'importe
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin quoi d'autre dans une macro. Il n'y a pas d'autre hypothèse sur la
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin structure lexicale et syntaxique de la macro (guillemets, espaces...)
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin que d'attendre une séquence de ligne avec éventuellement des
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> le nombre d'argument doit être cohérent avec la définition.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> toutes les occurences des paramètres sont substitués par leur valeur.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> en cas de conflit, le nom le plus long est choisit.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> une récursion dans l'expansion d'une macro est détectée et arrêtée avec une erreur.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les arguments vides génèrent un avertissement si ils sont utilisés.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> le système génère une description très précise de la localisation des erreurs.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les valeurs des paramètres préfixés par <code>$</code> et <code>%</code> ne sont pas protégés.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> les valeurs des paramètres préfixés par <code>@</code> sont protégés par des guillemets.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>Effacement de la définition d'une macro :</p>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <li> la macro effacée doit avoir été définie auparavant.</li>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<Macro DirGroup $dir $group>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <Directory $dir>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin require group $group
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin </Directory>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</Macro>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinUndefMacro DirGroup
fac8c35bfb158112226ab43ddf84d59daca5dc30nd </highlight>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<!-- Macro -->
fac8c35bfb158112226ab43ddf84d59daca5dc30nd<description>Définition d'une macro dans un fichier de configuration</description>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd<Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd... </Macro></syntax>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>La diretive <directive>Macro</directive> permet de définir une macro
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin dans un fichier de configuration Apache. Le premier argument est le nom
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin de la macro, et les arguments suivants sont les noms des paramètres. Il
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin est de bon aloi de préfixer les noms des paramètres d'une macro
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<Macro LocalAccessPolicy>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin order deny,allow
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin deny from all
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</Macro>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<Macro RestrictedAccessPolicy $ipnumbers>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin order deny,allow
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin deny from all
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin allow from $ipnumbers
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</Macro>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin </highlight>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd</directivesynopsis>
fac8c35bfb158112226ab43ddf84d59daca5dc30nd<!-- Use -->
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<directivesynopsis>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<syntax>Use <var>nom</var> [<var>valeur1</var> ... <var>valeurN</var>]
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p> La directive <directive>Use</directive> permet d'utiliser une macro.
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin La macro est expansée. Elle doit avoir le même nombre d'argument que le
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin nombre de paramètres précisés dans sa définition. Les valeurs passées en
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin argument sont substituées avant l'interprétation du texte de la macro.</p>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinUse LocalAccessPolicy
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinUse RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin </highlight>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>est équivalent, avec les macros définies au dessus, à :</p>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinorder deny,allow
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrindeny from all
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinorder deny,allow
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrindeny from all
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin </highlight>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</directivesynopsis>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<!-- UndefMacro -->
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<directivesynopsis>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin<contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</contextlist>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin <p>La directive <directive>UndefMacro</directive> efface la définition
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin d'une macro, qui doit avoir été définie auparavant.</p>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinUndefMacro LocalAccessPolicy
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrinUndefMacro RestrictedAccessPolicy
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin </highlight>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</directivesynopsis>
4277c95b5a9454a5c25f8d8762634fcff37aa840minfrin</modulesynopsis>