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     ?>

La coloration syntaxique est réalisée par un enrobage de la function php nommée highlight_file

mais si vous préférez, vous pouvez utiliser celle de SyntaxHighlighter ou même celle de geshi.

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)