Listing du fichier php_conceptuel.php avec syntaxhighlighter
<?php # (gH) -_- php_conceptuel.php ; TimeStamp (unix) : 18 Février 2013 vers 15:53 error_reporting(E_ALL | E_NOTICE | E_STRICT ) ; include("std7.php") ; debutPage("PHP conceptuel ou FTM (Function Tag Mapping)","strict") ; debutSection() ; blockquote() ; ###################################################################################### h1("PHP CONCEPTUEL") ; h1("(ou FTM : Function Tag Mapping with PHP)") ; # ------------------------------------------------------------------------------------ p("texte") ; 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 " ; echo "«bonne» solution standard. Et on doit alors écrire du code \"horrible\" comme :" ; finp() ; pre_fichier("badphp.txt","cadre") ; p("texte") ; 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 " ; echo " inclus de Javascript !). Si on ne veut pas recourir pas à des " ; echo href("http://en.wikibooks.org/wiki/PHP_Programming/template","templates","gbleuf nou").", " ; echo " il serait bon, comme en " ; echo href("http://fr.wikipedia.org/wiki/Doctrine_%28ORM%29","PHP/ORM","gvert nou")." au moins de masquer les codes HTML, CSS et Javascript " ; 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 " ; echo " débutants et nous proposons donc une libraire de fonctions PHP pour masquer ce qui sera interprété coté serveur. Ainsi l'exemple " ; echo " précédent devient " ; finp() ; pre_fichier("goodphp.txt","cadrebleu") ; p("texte") ; echo "Nous avons donc \"doublé\" les éléments XHTML usuels par des fonctions qui affichent directement ou qui renvoient des chaines de " ; echo " caractères, de façon à n'avoir que du PHP à écrire (et surtout à relire). On trouvera à l'adresse " ; echo href("stdphp.php","","gbleuf nou")." une page interactive pour voir comment utiliser ces fonctions, sachant que la seule chose à faire pour les " ; echo " utiliser est d'inclure le fichier ".href("std.php.zip","std.php","grouge nou")." en début de fichier PHP." ; finp() ; p("texte") ; 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").". " ; echo " En bon pédagogue, le fichier ".href("std.php","","gnoir nou")." requiert le fichier ".href("strfun.php","","gnoir nou").", disponible aussi dans " ; echo " l'archive ".href("std.php.zip","","gbleuf nou").". " ; finp() ; p("texte") ; 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) :" ; finp() ; # ------------------------------------------------------------------------------------ ul() ; debutli() ; p() ; echo "chaque élément de HTML comme ".b("h1")." ou ".b("p")." est remplacé par une fonction PHP, même ".b("span")." ; " ; finp() ; finli() ; debutli() ; p() ; echo "les attributs comme ".b("border")." pour ".b("table")." sont accessibles via les paramètres (non obligatoires) des fonctions " ; echo " avec des valeurs par défaut en principe ".em("bien choisies")." ; " ; finp() ; finli() ; debutli() ; p() ; echo " il est possible de passer les ".b("id")." et les ".b("noms de style CSS")." en paramètre ; " ; finp() ; finli() ; debutli() ; p() ; echo " la fonction ".b("debutPage")." permet de choisir le type de grammaire, de passer un ou plusieurs fichiers de styles CSS et " ; echo " de passer un ou plusieurs fichiers de scripts javascript à charger dans le head, le tout en mode " ; echo b("externalisation non intrusive").". Voir ".href("stdphp.php?lafns=debutPage")." pour les détails ;" ; finp() ; finli() ; debutli() ; p() ; echo " pour les formulaires, tout est prévu et même plus si affinité !" ; finp() ; finli() ; debutli() ; p() ; 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 "; echo " produit automatiquement un code XHTML valide aéré..." ; finp() ; finli() ; finul() ; # ------------------------------------------------------------------------------------ p("texte") ; echo "Soyons honnêtes, il y a aussi ".s_span("quelques désavantages","grouge")." :" ; finp() ; ul("class='tirets'") ; debutli("","class='tirets'") ; echo " il faut apprendre de nouvelles fonctions (heureusement, leur nom est calqué sur celui des éléments XHTML) ; " ; finli() ; debutli("","class='tirets'") ; echo " la syntaxe des paramètres de ces nouvelles fonctions est parfois un peu \"lourde\" ou \"non intuitive\" " ; echo " (heureusement, il y a une page ".href("stdphp.php")." pour les relire rapidement avec des exemples d'utilisation) ; " ; finli() ; debutli("","class='tirets'") ; echo " il s'agit d'une petite libraire que les étudiant(e)s doivent compléter (cela faire partie de mes exercices standards) ; " ; finli() ; debutli("","class='tirets'") ; 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 ; " ; finli() ; debutli("","class='tirets'") ; echo "il faut passer un peu de temps avec ".href("std.css")." pour en tirer pleinement profit..." ; finli() ; finul() ; p("texte") ; 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 " ; echo " qui est XHTML Strict valide ne contient pas une seule balise apparente... (il suffit de recherche le symbole ".b("<")." dans la page-source)." ; finp() ; p("texte") ; echo "Au fait, avez-vous remarqué que la dernière liste à puces était... à tirets dans cette page, sans ces \"horribles\" ".em("«bullets»")." ?" ; echo " C'est très simple à implémenter... en PHP conceptuel !" ; finp() ; # ------------------------------------------------------------------------------------ pvide() ; p() ; echo href("montresource.php?nomfic=php_conceptuel.php","Code-source de cette page","orange_stim nou")."." ; finp() ; ###################################################################################### finblockquote() ; finSection() ; finpage() ; ?>La coloration syntaxique est réalisée par : SyntaxHighlighter.
Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.
Retour à la page principale de (gH)