Valid XHTML    Valid CSS2    

Listing du fichier php_conceptuel.php

 

00001     <?php
00002     
00003     
# (gH) -_- php_conceptuel.php ; TimeStamp (unix) : 18 F&eacute;vrier 2013 vers 15:53
00004     
00005     
error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
00006     
00007     include(
"std7.php") ;
00008     
00009     
debutPage
("PHP conceptuel ou FTM (Function Tag Mapping)","strict") ;
00010     
debutSection() ;
00011     
blockquote() ;
00012     
00013     
######################################################################################
00014     
00015     
h1
("PHP CONCEPTUEL") ;
00016     
h1
("(ou FTM : Function Tag Mapping with PHP)") ;
00017     
00018     
# ------------------------------------------------------------------------------------
00019     
00020     
p
("texte") ;
00021     echo
"Lorsqu'on d&eacute;bute en PHP ou lorsqu'on doit &eacute;crire directement du code XHTML via PHP, il n'y a souvent pas de " ;
00022     echo
"&laquo;bonne&raquo; solution standard. Et on doit alors &eacute;crire du code \"horrible\" comme&nbsp;:" ;
00023     
finp() ;
00024     
00025     
pre_fichier
("badphp.txt","cadre") ;
00026     
00027     
p
("texte") ;
00028     echo
"Il nous semble que ce code est mauvais parce qu'il m&eacute;lange les langages PHP, HTML et CSS (et encore, nous n'avons pas " ;
00029     echo
" inclus de Javascript&nbsp;!). Si on ne veut pas recourir pas &agrave; des " ;
00030     echo
href
("http://en.wikibooks.org/wiki/PHP_Programming/template","templates","gbleuf nou").", " ;
00031     echo
" il serait bon, comme en " ;
00032     echo
href
("http://fr.wikipedia.org/wiki/Doctrine_%28ORM%29","PHP/ORM","gvert nou")." au moins de masquer les codes HTML, CSS et Javascript " ;
00033     echo
" par des fonctions ou des m&eacute;thodes objets de PHP. A la r&eacute;flexion, le m&eacute;canisme objet est sans doute trop \"lourd\" pour des " ;
00034     echo
" d&eacute;butants et nous proposons donc une libraire de fonctions PHP pour masquer ce qui sera interpr&eacute;t&eacute; cot&eacute; serveur. Ainsi l'exemple " ;
00035     echo
" pr&eacute;c&eacute;dent devient " ;
00036     
finp() ;
00037     
00038     
pre_fichier
("goodphp.txt","cadrebleu") ;
00039     
00040     
p
("texte") ;
00041     echo
"Nous avons donc \"doubl&eacute;\" les &eacute;l&eacute;ments XHTML usuels par des fonctions qui affichent directement ou qui renvoient des chaines de " ;
00042     echo
" caract&egrave;res, de fa&ccedil;on &agrave; n'avoir que du PHP &agrave; &eacute;crire (et surtout &agrave; relire). On trouvera &agrave; l'adresse " ;
00043     echo
href
("stdphp.php","","gbleuf nou")." une page interactive pour voir comment utiliser ces fonctions, sachant que la seule chose &agrave; faire pour les " ;
00044     echo
" utiliser est d'inclure le fichier "
.href("std.php.zip","std.php","grouge nou")." en d&eacute;but de fichier PHP." ;
00045     
finp() ;
00046     
00047     
p
("texte") ;
00048     echo
"Cela n'aurait pas de sens de ne pas fournir aussi un fichier de style pr&ecirc;t &agrave; l'emploi et il se nomme bien s&ucirc;r "
.href("std.css","std.css","gnoir nou").". " ;
00049     echo
" En bon p&eacute;dagogue, le fichier "
.href("std.php","","gnoir nou")." requiert le fichier ".href("strfun.php","","gnoir nou").", disponible aussi dans " ;
00050     echo
" l'archive "
.href("std.php.zip","","gbleuf nou").". " ;
00051     
finp() ;
00052     
00053     
p
("texte") ;
00054     echo
"Voici "
.s_span("quelques avantages","gvertf")." &agrave; utiliser ce syst&egrave;me de liaison entre balises et fonctions PHP (FTM ou Function Tag Mapping en anglais)&nbsp;:" ;
00055     
finp() ;
00056     
00057     
# ------------------------------------------------------------------------------------
00058     
00059     
ul() ;
00060     
00061     
debutli
() ; p() ;
00062     echo
"chaque &eacute;l&eacute;ment de HTML comme "
.b("h1")." ou ".b("p")." est remplac&eacute; par une fonction PHP, m&ecirc;me ".b("span")."&nbsp;; " ;
00063     
finp
() ; finli() ;
00064     
00065     
debutli
() ; p() ;
00066     echo
"les attributs comme "
.b("border")." pour ".b("table")." sont accessibles via les param&egrave;tres (non obligatoires) des fonctions " ;
00067     echo
" avec des valeurs par d&eacute;faut en principe "
.em("bien choisies")."&nbsp;; " ;
00068     
finp
() ; finli() ;
00069     
00070     
debutli
() ; p() ;
00071     echo
" il est possible de passer les "
.b("id")." et les ".b("noms de style CSS")." en param&egrave;tre&nbsp;; " ;
00072     
finp
() ; finli() ;
00073     
00074     
debutli
() ; p() ;
00075     echo
" la fonction "
.b("debutPage")." permet de choisir le type de grammaire, de passer un ou plusieurs fichiers de styles CSS et " ;
00076     echo
" de passer un ou plusieurs fichiers de scripts javascript &agrave; charger dans le head, le tout en mode " ;
00077     echo
b
("externalisation non intrusive").". Voir ".href("stdphp.php?lafns=debutPage")." pour les d&eacute;tails&nbsp;;" ;
00078     
finp
() ; finli() ;
00079     
00080     
debutli
() ; p() ;
00081     echo
" pour les formulaires, tout est pr&eacute;vu et m&ecirc;me plus si affinit&eacute;&nbsp;!" ;
00082     
finp
() ; finli() ;
00083     
00084     
debutli
() ; p() ;
00085     echo
" encha&icirc;ner des fonctions XHTML valides qui ouvrent et ferment elles-m&ecirc;me les balises et qui ajoutent un retour-charriot en fin de balise ";
00086     echo
" produit automatiquement un code XHTML valide a&eacute;r&eacute;..." ;
00087     
finp
() ; finli() ;
00088     
00089     
00090     
finul() ;
00091     
00092     
# ------------------------------------------------------------------------------------
00093     
00094     
p
("texte") ;
00095     echo
"Soyons honn&ecirc;tes, il y a aussi "
.s_span("quelques d&eacute;savantages","grouge")."&nbsp;:" ;
00096     
finp() ;
00097     
00098     
ul
("class='tirets'") ;
00099     
00100     
debutli
("","class='tirets'") ;
00101     echo
" il faut apprendre de nouvelles fonctions (heureusement, leur nom est calqu&eacute; sur celui des &eacute;l&eacute;ments XHTML)&nbsp;; " ;
00102     
finli() ;
00103     
00104     
debutli
("","class='tirets'") ;
00105     echo
" la syntaxe des param&egrave;tres de ces nouvelles fonctions est parfois un peu \"lourde\" ou \"non intuitive\" " ;
00106     echo
" (heureusement, il y a une page "
.href("stdphp.php")." pour les relire rapidement avec des exemples d'utilisation)&nbsp;; " ;
00107     
finli() ;
00108     
00109     
debutli
("","class='tirets'") ;
00110     echo
" il s'agit d'une petite libraire que les &eacute;tudiant(e)s doivent compl&eacute;ter (cela faire partie de mes exercices standards)&nbsp;; " ;
00111     
finli() ;
00112     
00113     
debutli
("","class='tirets'") ;
00114     echo
"il y a quelques "
.em(s_span("intrus","gvert"))." comme les fonctions pour MySql ou les ".em(s_span("m&eacute;thodes objets","gbleu"))." des tables des mati&egrave;res cliquables&nbsp;; " ;
00115     
finli() ;
00116     
00117     
debutli
("","class='tirets'") ;
00118     echo
"il faut passer un peu de temps avec "
.href("std.css")." pour en tirer pleinement profit..." ;
00119     
finli() ;
00120     
00121     
finul() ;
00122     
00123     
p
("texte") ;
00124     echo
"Enfin, comme une d&eacute;monstration vaut mieux qu'un grand discours, cliquez sur le lien orange en bas et vous constaterez que toute cette page " ;
00125     echo
" qui est XHTML Strict valide ne contient pas une seule balise apparente... (il suffit de recherche le symbole "
.b("&lt;")." dans la page-source)." ;
00126     
finp() ;
00127     
00128     
p
("texte") ;
00129     echo
"Au fait, avez-vous remarqu&eacute; que la derni&egrave;re liste &agrave; puces &eacute;tait... &agrave; tirets dans cette page, sans ces \"horribles\" "
.em("&laquo;bullets&raquo;")."&nbsp;?" ;
00130     echo
" C'est tr&egrave;s simple &agrave; impl&eacute;menter... en PHP conceptuel&nbsp;!" ;
00131     
finp() ;
00132     
00133     
# ------------------------------------------------------------------------------------
00134     
00135     
pvide() ;
00136     
00137     
p() ;
00138     echo
href
("montresource.php?nomfic=php_conceptuel.php","Code-source de cette page","orange_stim nou")."." ;
00139     
finp() ;
00140     
00141     
######################################################################################
00142     
00143     
finblockquote() ;
00144     
finSection() ;
00145     
finpage() ;
00146     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)