Listing du fichier php_conceptuel.php
00001 <?php
00002
00003 # (gH) -_- php_conceptuel.php ; TimeStamp (unix) : 18 Fé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ébute en PHP ou lorsqu'on doit écrire directement du code XHTML via PHP, il n'y a souvent pas de " ;
00022 echo "«bonne» solution standard. Et on doit alors écrire du code \"horrible\" comme :" ;
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élange les langages PHP, HTML et CSS (et encore, nous n'avons pas " ;
00029 echo " inclus de Javascript !). Si on ne veut pas recourir pas à 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éthodes objets de PHP. A la réflexion, le mécanisme objet est sans doute trop \"lourd\" pour des " ;
00034 echo " débutants et nous proposons donc une libraire de fonctions PHP pour masquer ce qui sera interprété coté serveur. Ainsi l'exemple " ;
00035 echo " précédent devient " ;
00036 finp() ;
00037
00038 pre_fichier("goodphp.txt","cadrebleu") ;
00039
00040 p("texte") ;
00041 echo "Nous avons donc \"doublé\" les éléments XHTML usuels par des fonctions qui affichent directement ou qui renvoient des chaines de " ;
00042 echo " caractères, de façon à n'avoir que du PHP à écrire (et surtout à relire). On trouvera à l'adresse " ;
00043 echo href("stdphp.php","","gbleuf nou")." une page interactive pour voir comment utiliser ces fonctions, sachant que la seule chose à faire pour les " ;
00044 echo " utiliser est d'inclure le fichier ".href("std.php.zip","std.php","grouge nou")." en dé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êt à l'emploi et il se nomme bien sûr ".href("std.css","std.css","gnoir nou").". " ;
00049 echo " En bon pé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")." à utiliser ce système de liaison entre balises et fonctions PHP (FTM ou Function Tag Mapping en anglais) :" ;
00055 finp() ;
00056
00057 # ------------------------------------------------------------------------------------
00058
00059 ul() ;
00060
00061 debutli() ; p() ;
00062 echo "chaque élément de HTML comme ".b("h1")." ou ".b("p")." est remplacé par une fonction PHP, même ".b("span")." ; " ;
00063 finp() ; finli() ;
00064
00065 debutli() ; p() ;
00066 echo "les attributs comme ".b("border")." pour ".b("table")." sont accessibles via les paramètres (non obligatoires) des fonctions " ;
00067 echo " avec des valeurs par défaut en principe ".em("bien choisies")." ; " ;
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ètre ; " ;
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 à charger dans le head, le tout en mode " ;
00077 echo b("externalisation non intrusive").". Voir ".href("stdphp.php?lafns=debutPage")." pour les détails ;" ;
00078 finp() ; finli() ;
00079
00080 debutli() ; p() ;
00081 echo " pour les formulaires, tout est prévu et même plus si affinité !" ;
00082 finp() ; finli() ;
00083
00084 debutli() ; p() ;
00085 echo " enchaîner des fonctions XHTML valides qui ouvrent et ferment elles-même les balises et qui ajoutent un retour-charriot en fin de balise ";
00086 echo " produit automatiquement un code XHTML valide aéré..." ;
00087 finp() ; finli() ;
00088
00089
00090 finul() ;
00091
00092 # ------------------------------------------------------------------------------------
00093
00094 p("texte") ;
00095 echo "Soyons honnêtes, il y a aussi ".s_span("quelques désavantages","grouge")." :" ;
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é sur celui des éléments XHTML) ; " ;
00102 finli() ;
00103
00104 debutli("","class='tirets'") ;
00105 echo " la syntaxe des paramè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) ; " ;
00107 finli() ;
00108
00109 debutli("","class='tirets'") ;
00110 echo " il s'agit d'une petite libraire que les étudiant(e)s doivent compléter (cela faire partie de mes exercices standards) ; " ;
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éthodes objets","gbleu"))." des tables des matières cliquables ; " ;
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é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("<")." dans la page-source)." ;
00126 finp() ;
00127
00128 p("texte") ;
00129 echo "Au fait, avez-vous remarqué que la dernière liste à puces était... à tirets dans cette page, sans ces \"horribles\" ".em("«bullets»")." ?" ;
00130 echo " C'est très simple à implémenter... en PHP conceptuel !" ;
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 à la page principale de (gH)