Expression comparées des syntaxes principales
Avertissement : Attention, cette comparaison ne peu ni ne doit servir de base à une possible translation du DIML vers le PHP. En effet, elle ignore complètement l'aspect récursif du moteur DIML qui lui confère toute sa puissance. Il faut plutôt lire ce document comme les syntaxes probables que l'on trouverait dans du code HTML pour effectuer sa production en PHP.
Pour une discussion plus détaillée sur la transcription du DIML en PHP formel, on se référera au document Translation DIML / PHP
Expressions à conversion simple
Variables simples |
DIML |
PHP |
<%%VARIABLE%%> |
<? echo $VARIABLE; ?> |
<%%FORM::cgiparm%%>
|
<? echo $cgiparm ; ?> |
<TEMPLATE ID="VARIABLE">
séquence_diml
</TEMPLATE> |
<? $VARIABLE="séquence_html" ; ?> |
<%set %VARIABLE% = "séquence_diml_échappée" %> |
??(0) |
<%eval %VARIABLE% = "séquence_diml_échappée" %> |
<? $VARIABLE="séquence_html" ; ?> |
Structures |
DIML |
PHP |
<%if (condition_perl) %>
séquence_diml
<%elsif (condition_perl) %>
séquence_diml
<%else %>
séquence_diml
<%endif %>
|
<? if (condition php)
{ ?>
séquence_html/php
<?
}
elsif (condition_php)
{ ?>
séquence_html/php
<?
}
else
{
?>
séquence_html/php
<? } ?>
|
<%if (condition_perl)
%ALTERNATIVE1% %endif %> |
<? if (condition_php)
{
echo $ALTERNATIVE1 ;
}
?> |
<%if (condition_perl)
"séquence_diml_échappée" %endif %> |
<? if (condition_php)
{
echo "séquence_html_interpolée" ;
}
?> |
<%if (condition_perl)
%ALTERNATIVE1%
%else %ALTERNATIVE2% %endif %> |
<? if (condition_php)
{
echo $ALTERNATIVE1 ;
}
else
{
echo $ALTERNATIVE2 ;
}
?> |
<%invoke script="script_perl.pl" %>(1) |
<? include('script_php.php'); ?> |
<- 0 - Les instructions %set et %eval ont un comportement très différent sur le principe, même si elles servent toutes deux à définir le contenu d'une variable. La distinction porte sur ce que l'on entend par "contenu". L'instruction %eval fonctionne comme l'affectation d'une chaîne substituée en Php : si une variable est reconnaissable dans la chaîne affectée, sa valeur courante y est substituée avant l'affectation. La commande %set ne semble pas avoir d'équivalent. Elle définit la variable en laissant les indirections constituées par les instructions DIML qui s'y trouvent. La valeur réelle de la variable est celle calculée lors de son utilisation.
<- 1 - La notion d'invocation et d'inclusion est légèrement différente entre les deux langages. En DIML l'invocation demande l'exécutiuon d'un script Perl programmé par le développeur, et destiné à fournir des variables au reste de la page. En Php, il s'agit bien d'une inclusion à proprement parler, c'est à dire l'exécution dans la continuité d'un fragment de php. L'inclusion au sens du Php est un concept générique du DIML par l'appel de templates externes.
All material is copyleft V.G. FREMAUX (EISTI France) 1999 to 2003 except explicitly mentioned
|