jeudi 27 septembre 2007

Pages et composants mason

En mason, il n'existe pas de difference entre la notion de page et de composant. Une page est simplement un composant qu'on utilise en bout de chaine de traitement mason pour le rendu du code html. Structurellement, un composant est compose d'html, de directives mason, de divers blocs de code perl et eventuellement de methodes et de sous composants. On nomme generalement les composants qui ne sont pas de pages en .mas. Par exemple, voici un composant qui rend la date courante:

  1. % # date.mas
  2. % my $when = gmtime() ;
  3. <p>Page rendue a <% $when %></p>
On inclut ensuite ce composant dans la page index.html ( voir post précèdent ) de la façon suivante:
  1. ...
  2. <& /time.mas &>
  3. ...
Si vous placez ce composant a la racine du serveur, n'importe qui pourrais recuperer votre code a l'adresse http://www.foobar.com/time.mas . Pour eviter cette situation desagreable, l'usage preconise de stocker dans deux repertoires distincts les pages proprement dites et les composants qui ne servent jamais directement comme page. Par exemple, on cree un repertoire masoncomp au meme niveau que htdocs et on ajoute ce repertoire ou mason cherche les composants (dans la conf d'apache):
  1. PerlAddVar MasonCompRoot "components => /var/www/masoncomp/"
On peut alors déplacer le composant time.mas de htdocs vers masoncomp. Pour l'inclure, on utilise toujours '/time.mas' . C'est en quelque sorte son adresse dans l'espace des composants mason. La prochaine fois, je parlerais de composition de page par héritage. En attendant, vous pouvez trouver plus d'information sur les composants ici.

Aucun commentaire: