Valid XHTML     Valid CSS2    

Listing du fichier php_conceptuel.php avec syntaxhighlighter


        <?php
        
        #    (gH)   -_-  php_conceptuel.php  ;  TimeStamp (unix) : 18 F&eacute;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&eacute;bute en PHP ou lorsqu'on doit &eacute;crire directement du code XHTML via PHP, il n'y a souvent pas de " ;
        echo "&laquo;bonne&raquo; solution standard. Et on doit alors &eacute;crire du code \"horrible\" comme&nbsp;:" ;
        finp() ;
        
        pre_fichier("badphp.txt","cadre") ;
        
        p("texte") ;
        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 " ;
        echo " inclus de Javascript&nbsp;!). Si on ne veut pas recourir pas &agrave; 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&eacute;thodes objets de PHP. A la r&eacute;flexion, le m&eacute;canisme objet est sans doute trop \"lourd\" pour des " ;
        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 " ;
        echo " pr&eacute;c&eacute;dent devient " ;
        finp() ;
        
        pre_fichier("goodphp.txt","cadrebleu") ;
        
        p("texte") ;
        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 " ;
        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 " ;
        echo href("stdphp.php","","gbleuf nou")." une page interactive pour voir comment utiliser ces fonctions, sachant que la seule chose &agrave; faire pour les " ;
        echo " utiliser est d'inclure le fichier ".href("std.php.zip","std.php","grouge nou")." en d&eacute;but de fichier PHP." ;
        finp() ;
        
        p("texte") ;
        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").". " ;
        echo " En bon p&eacute;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")." &agrave; utiliser ce syst&egrave;me de liaison entre balises et fonctions PHP (FTM ou Function Tag Mapping en anglais)&nbsp;:" ;
        finp() ;
        
        # ------------------------------------------------------------------------------------
        
        ul() ;
        
        debutli() ; p() ;
        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;; " ;
        finp() ; finli() ;
        
        debutli() ; p() ;
        echo "les attributs comme ".b("border")." pour ".b("table")." sont accessibles via les param&egrave;tres (non obligatoires) des fonctions " ;
        echo " avec des valeurs par d&eacute;faut en principe ".em("bien choisies")."&nbsp;; " ;
        finp() ; finli() ;
        
        debutli() ; p() ;
        echo " il est possible de passer les ".b("id")." et les ".b("noms de style CSS")." en param&egrave;tre&nbsp;; " ;
        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 &agrave; charger dans le head, le tout en mode " ;
        echo b("externalisation non intrusive").". Voir ".href("stdphp.php?lafns=debutPage")." pour les d&eacute;tails&nbsp;;" ;
        finp() ; finli() ;
        
        debutli() ; p() ;
        echo " pour les formulaires, tout est pr&eacute;vu et m&ecirc;me plus si affinit&eacute;&nbsp;!" ;
        finp() ; finli() ;
        
        debutli() ; p() ;
        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 ";
        echo " produit automatiquement un code XHTML valide a&eacute;r&eacute;..." ;
        finp() ; finli() ;
        
        
        finul() ;
        
        # ------------------------------------------------------------------------------------
        
        p("texte") ;
        echo "Soyons honn&ecirc;tes, il y a aussi ".s_span("quelques d&eacute;savantages","grouge")."&nbsp;:" ;
        finp() ;
        
        ul("class='tirets'") ;
        
        debutli("","class='tirets'") ;
        echo " il faut apprendre de nouvelles fonctions (heureusement, leur nom est calqu&eacute; sur celui des &eacute;l&eacute;ments XHTML)&nbsp;; " ;
        finli() ;
        
        debutli("","class='tirets'") ;
        echo " la syntaxe des param&egrave;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)&nbsp;; " ;
        finli() ;
        
        debutli("","class='tirets'") ;
        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;; " ;
        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&eacute;thodes objets","gbleu"))." des tables des mati&egrave;res cliquables&nbsp;; " ;
        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&eacute;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("&lt;")." dans la page-source)." ;
        finp() ;
        
        p("texte") ;
        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;?" ;
        echo " C'est tr&egrave;s simple &agrave; impl&eacute;menter... en PHP conceptuel&nbsp;!" ;
        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 gH    Retour à la page principale de   (gH)