30

Par rapport aux librairies, j'utilise énormément de trucs de Pear (en particulier tout ce qui est relatif au cryptage), mais c'est dans un domaine d'activité très précis.
avatar

31

TU travailles pour les chinois du FBI toi, c'est ça ?
avatar
Slammeur (qu'on voit danser, le long des golfes clairs).
Mon blog qui parle de jeux-vidéo

32

exact
avatar

33

Je me suis rendu compte qu'il faut appeller le Php dans les pages HTML et non le contraire car le <HEAD>...<HEAD> doit toujour etre visible que les moteur de recherche puisse indexer les pages d'un site.

Que voulez-vous, j'avais oublie cette contrainte en generant meme le <HEAD>...<HEAD> a partir de Php.



Vu l'obligation ci-dessus, l'utilisation d'un template m'apparait un peu plus evident.

De facon generale, le Template contient tres peu de ligne de code; tous les elements de la page etant genere quasi dynamiquement.
La seul chose evidente qui m'apparait, c'est qu'au lieu de concatener des chaines, je manipule des fichiers en Ecriture.
C'est surement de la que provient le gain en vitesse.

Le template prend veritablement en charge tres peu de chose dans l'affichage d'une page Web.
A part preciser l'emplacement des conteneurs(Cadre) principaux comme la banniere, les lien haut-bas, le sommaire et les news, tout est genere quasi dynamiquement par le code Php.

Je me dit vraiment qu'un template fait tres peu de chose ; le css etant deja dedie a la mise en forme.


34

euh les moteurs de recherce voient la page comme le visiteur ... donc si tu genre le head par php, il sera lu par les moteurs, comme par IE/FF/autres
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

35

ah ok, autant pour moi, je debute a peine alors je vois des pb, la ou il n'y en pas.
Du coup, j'ai rien a changer a mon code alors smile



le seul truc que j'ai trouver d'interessant, c'est la fonction de substitution de chaine dans un autre : 'ereg_replace('.
Elle doit certainement etre plus rapide que de concatener de chaine.

Je veux bien me mettre au template si quelqu'un me convaint de son utilite.

36

son utilité par rapport à quoi ? (enfin ça dépend, si tu sais d'avance que ton site devra toujours avoir le même aspect, les templates ne sont pas indispensables, mais sinon...)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

37

Bah si tu fais un site pour une boite (un truc relativement dynamique) et que la boite a envie de modifier des trucs parfois, il est plus facile de taper dans du code template que dans du code php qui genere de l'html.
De plus, ca centralise tout (generalement) dans un meme repertoire.

Ensuite, si tu utilises Smarty (le seul que je connaisse bien) tu as plein de possibilites cote template (cache, fonctions, boucles etc.) qui te rendent la vie vraiment facile quand il s'agit de mettre en forme des donnees choppees d'une BDD.

Mais bon, ca depend quand meme un peu de l'ampleur de ton projet etc.

38

(et d'ailleurs, même si tu développes à un instant t un site qui a un aspect figé, je conseille d'avoir une structure qui se rapproche des templates pour les mises à jour futures)
edit : cross
avatar

39

andoh_wilfried :
le seul truc que j'ai trouver d'interessant, c'est la fonction de substitution de chaine dans un autre : 'ereg_replace('. Elle doit certainement etre plus rapide que de concatener de chaine.


euh ... aucun rapport entre ereg_replace et la concaténation what
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

40

Hum, tu peux imaginer que si... grin

41

En fait dans mon site, j'utilise des templates, sauf que je les ai fait en Php.
Mon vrai probleme c'est que je manque un peu d'imagination, sur ce qu'il faut dedier comme tache au template.
Ce que j'avais compris c'est que dans le template, on ne modelise que l'aspect du site qui est suppose ne pas changer.

Mais bon vu le paquet de fonctions que j'ai vu dans Smarty, on dirait que y a moyen de faire mieux que ca.
C'est quasiment un language pour generer des fichiers HTML d'une autre facon que de passer par des
echo "blablabla"
echo ...


Je vais essayer Smarty pour voir comment adapter tout ca.



En fait si j'ai fait allusion a 'ereg_replace(' en parlant de ttemplate, c'est parceque j'ai lu 1 tuto sur developpez.com
qui chargeait le template dans une chaine de caractere pour ensuite effectuer les substitution ensuite.
Ce n'est surement pas la meilleur chose a faire, puisque cette methode est basee sur l'utilisation de chaines de caracteres au lieu d'ecrire dans un fichier.



42

perso j'ai jamais utilisé de bibliothèques adaptées pour ce genre de choses, et je ne sais pas comment elles fonctionnent, donc utiliser des templates me permet juste de séparer totalement la partie affichage et le code (et donc au passage de permettre de changer totalement l'aspect du site, de façon bien plus flexible que ce qui pourrait être fait avec des css par exemple).
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

43

Je fait une analogie comme ca mais je peux avoir tout faux :
On peu faire generer avec les templates des pages HTML un peu comme on le fait en utilisant le XML et les languages qui y sont associes, vu que l'on dispose de la richesse et de la simplicite des structures conditionnelles du Php.



Une question pratique( mais vraiement pourrie ) pour voir si j'ai pige le truc :

Suppossons que mon sommaire de gauche contient des sous menus dont le nombre varie en selon la page.
Les fonctions du Template( notemment les boucle for ) peuvent me permettre de generer tous mes Menu juste en lui passant mes variables array() du Php.
Je pourrai faire de meme pour les postes d'un forum et tous le reste.

Si c'est le cas j'achete, et je recode des demain matin toutes mes fonctions d'affichage. J'ai eu une idee tres reductrice du template en lisant un petit tuto sur le sujet sur developpez.com. J'avais pas saisi que c'etait un language d'une aussi grande souplesse.


Je crois que je suis dingue des templates ( 1 pour chaque type de page afficher ).



Merci a tous

44

andoh_wilfried :
Je fait une analogie comme ca mais je peux avoir tout faux : On peu faire generer avec les templates des pages HTML un peu comme on le fait en utilisant le XML et les languages qui y sont associes, vu que l'on dispose de la richesse et de la simplicite des structures conditionnelles du Php.

Rien capté, quel est le rapport entre les "structures conditionnelles" du php et le fait de génerer une page d'une façon ou d'une autre... ? (essaie plutôt de t'exprimer avec tes propres mots)
Suppossons que mon sommaire de gauche contient des sous menus dont le nombre varie en selon la page.
Les fonctions du Template( notemment les boucle for ) peuvent me permettre de generer tous mes Menu juste en lui passant mes variables array() du Php. Je pourrai faire de meme pour les postes d'un forum et tous le reste.

Ça dépend du moteur de templates que tu comptes utiliser, mais souvent oui, c'est prévu pour fonctionner comme ça.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

45

Au fait Vertyos, tu geres toi meme tes templates sans utiliser de librairie ?
tu t'ai code un truc propre a toi je suppose( parce que je trouve couteux de prevoir la taille d'une libraire pour en utliser juste quelques fonctionnalites, si elle n'est pas deja disponible sur la plus part des serveurs Php ).



46

Hum, le fait de choisir un turc comme Smarty, c'est que tu as qqch de qualite et qui marche bien (et qui est rapide en fait).

47

J'ai jete un oeil a la demo de Smarty, et je pense que ca m'a convaicu, meme si j'ai pas encore parcouru le manuel pour me familiariser a la syntaxe du language.
Je constate que cela revient strictement a differer toute la gestion de l'affichage dans le template.

En meme temps qu'on se le dise, ce n'est plus du HTML ce truc.
Mais je reste assez d'accord avec le fait que la partie du code non HTML et le pseudo code PhP de Smarty sont completement separe( contrairement a ce qu'on pourrait faire en Php uniquement ).

Reste une interrogation sur le compilateur Smarty :
- C'est entierement code en Php pour generer du code Php qui lui meme produit du HTML, n'est-ce pas ?
- Comment se fait-il qu'il puisse etre aussi rapide qu'une solution qui gere tout l'affichage a partir du Php uniquement ?

48

(et donc au passage de permettre de changer totalement l'aspect du site, de façon bien plus flexible que ce qui pourrait être fait avec des css par exemple).

Bah les CSS dynamiques c'est sympa aussi ^^
avatar

49

Nan, mais les deux (CSS et templates) sont complementaires et devraient pas agir sur les mm portions de code.
Le Template est pour la mise en forme du code html alors que le CSS est pour la mise en forme de la page generee.

50

andoh_wilfried :
Au fait Vertyos, tu geres toi meme tes templates sans utiliser de librairie ? tu t'ai code un truc propre a toi je suppose

Oui, j'avais pas besoin d'un truc très évolué donc j'ai preferé refaire ma lib; j'aime pas trop dépendre de bouts de code à droite à gauche.

(pencil nEUrOO)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

51

En effet, c'est a peu pres le probleme que ca me pose.
Avoir une lib qui va me grossir la taille de mon siteWeb alors que je ne vais en utiliser que quelque fonctions.
D'un autre cote ca me fait chier de develloper un surcouche de language au HTML juste pour gerer mes templates( perte de temps ).

Esct-ce que les Hebergeurs de solutions Php donnent acces aux languages de templates comme Smarty ,
ou faut-il personnement inclure la librairie dans son site Web.

Si des solutions de template sont integer a Php, j'aimerai bien qu'on me disent lesquelles.

52

Bah personnellement, quand je dois delivrer un service correct, bah j'essaie de me reposer sur qqch de bien, en l'occurence Smarty est tres utilise (gallery etc.)
Et faut pas avoir peur du temps/taille du projet car le cache existe (cote serveur aussi)

53

andoh_wilfried a écrit :
le seul truc que j'ai trouver d'interessant, c'est la fonction de substitution de chaine dans un autre : 'ereg_replace('. Elle doit certainement etre plus rapide que de concatener de chaine.

Premièrement, je te conseille de remplacer tous tes fonctions de regex POSIX (ereg_* et assimilés) par les PCRE (PERL compatible regular expressions) équivalentes (preg_* et assimilés) :
Extrait de la documentation sur ereg_replace() :
Astuce : preg_replace(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg_replace().
La colonne de gauche de la page sur ereg_replace() te donnera la liste des fonctions de regex POSIX wink.

Deuxièmement, si tes substitutions ne sont pas compliquées fleche
Extrait de la documentation sur str_replace() :
Si vous n'avez pas besoin de règles de remplacement compliquées, utilisez cette fonction de préférence à ereg_replace() et preg_replace().

Sinon, vu le caractère balbutiant de l'orientation objet en PHP 4, on atteint très vite ses limites (Anna peut en témoigner >_<), donc je pense que c'est une bonne idée de passer en PHP 5 pour ça (dit-il en venant lui-même de ne passer à PHP 5 que depuis quelques jours, et en n'ayant toujours pas réécrit ses classes qui sont toujours en version PHP 4 sick...).
avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

54

(de toutes façons, ereg_* va disparaître en PHPv6, si je ne m'abuse)
avatar

55

avatar
Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.

56

tm1-$tm0).' secondes'; ?> Voici un exemple de code Php<? include 'php_code/include_classes.php'; function microtime_float() {     list($usec, $sec) = explode(" ", microtime());     return ((float)$usec + (float)$sec); } $tm0 = microtime_float(); $header = new HtmlHeader( "TEST SITE WEB",  "F:\Program Files\EasyPHP1-8\www\PHP_WebSite_Builder\",  "css\styles.css",  array(  'Author'               =>"KOUADIO A. T. Wilfried",  'Language'               =>"fr",  'Publisher'          =>"KOUADIO A. T. Wilfried",  'Reply-to'               =>"andoh_wilfried@caramail.com",  'Copyright'          =>"&#65385; 2006 KOUADIO A. T. Wilfried",  'Generator'          =>"maison",  'Description'          =>"Site test.",  'Keywords'               =>"rien",  'Indentifier-URL'     =>"http://",  'Date'                    =>"Mon, 14 Oct 2006 16:00:00",  'Robots'               =>"Index, Follow",  'Revisit-after'     =>"15",  ) ); // Cadre Banniere $banniere = new HtmlContainer( 'div', 'cadre_banniere', '', array(), "" ); // Ajout des Images $banniere->setContainer( new HtmlContainer( 'img', 'cadre_default', '', array( 'name'=>"", 'src'=>".\Images\logo_ccil.jpg" ), "" ) ); $banniere->setContainer( new HtmlContainer( 'img', 'cadre_default', '', array( 'name'=>"", 'src'=>".\Images\banniere.jpg" ), "" ) ); // Liens Haut de page $lienHautBas = new HtmlLinkHorizontal( 'cadre_hautdepage', '', array( array("qw","will"), array("ty","bill") ), "|" ); $msgHello = new HtmlMsgBoxRubrique( "Bonjour WILL", "Comment va-tu ?" ); $msgCoursEco = new HtmlMsgBoxRubrique( "ECO",      "la recession de 1928 a ....<br>".      "Ainsi parlant de ....<br>".      "On pourrait prevoir ...<br>".      "Si les marches n'anticipent pas ...<br>".      "La prochaine crise bousiere ...<br>".      "Elle aura des allures de revolution ...<br>".      "Les forces geopolitiques ...<br>".      "..." );       $imgMaPhoto = new HtmlContainer( "img", "cadre_default", "",  array( 'name'=>"Will de London", 'width'=>"100%", 'src'=>".\Images\scan0032.jpg" ), "" ); $cadreMenu = new HtmlContainer( 'div', 'cadre_menu', "", array(),"" ); $cadreMenu->setContainer( new HtmlLinkMenu( 'titre_menu', "Mes Neveux", "corps_menu", array( array("qw","Dorian"), array("ty","Noah") ) ) ); $cadreMenu->setContainer( new HtmlLinkMenu( 'titre_menu', "PAROLE & VIE", "corps_menu", array( array("qw","Les Membres"), array("ty","Contact") ) ) ); $cadreMenu->setContainer( new HtmlLinkMenu( 'titre_menu', "Annonce & Jobs", "corps_menu", array( array("qw","Etudiants"), array("ty","Autres") ) ) ); $flashChat = new HtmlContainer( 'div', 'cadre_news', '', array(),"" ); $flashChat->setContainer( new HtmlMsgBoxMini( "-> Bill", "Comment va-tu ?" ) ); $flashChat->setContainer( new HtmlMsgBoxMini( "<- Will", "Bien, et la famille ?" ) ); $flashChat->setContainer( new HtmlMsgBoxMini( "-> Bill", "On fait aller" ) ); $flashChat->setContainer( new HtmlMsgBoxMini( "<- Will", "Et le Basket, ca avance ?" ) ); $flashChat->setContainer( new HtmlMsgBoxMini( "-> Bill", "Ouai, tres bien. Tu viens me voir quand ?" ) ); $flashChat->setContainer( new HtmlMsgBoxMini( "<- Will", "Bientot, je suis sure que tu devines quand ?" ) ); $cadreNews = new HtmlContainer( 'div', 'cadre_news', '', array(),"" ); $cadreNews->setContainer( $flashChat ); $cadre = new HtmlContainer( 'div', 'cadre_principale', '', array(), "" ); $cadre->setContainer( $banniere ); $cadre->setContainer( $lienHautBas ); $cadre->setContainer( $cadreMenu ); $cadre->setContainer( $cadreNews ); $cadre->setContainer( $msgHello ); $cadre->setContainer( $imgMaPhoto ); $cadre->setContainer( $msgCoursEco ); $cadre->setContainer( $lienHautBas ); $page = new HtmlContainer( 'div', 'cadre_conteneur', '', array(), "" ); $page->setContainer( $cadre ); $body = new HtmlContainer( 'body', '', '', array(), "" ); $body->setContainer( $page ); $document = new HtmlDocument( $header, $body ); /* AFFICHAGE CODE SOURCE $struct = new HtmlMsgBoxRubrique( "DOC", $document->getStructureContainer(1) ); $document->setContainer( $struct ); */ echo $document->getParseDocument(1); $tm1 = microtime_float(); echo 'Page generee en '.($ 5774536 secondes qui genere du HTML <html>   <head>    <meta   NAME = "Author" CONTENT = "KOUADIO A. T. Wilfried">    <meta   NAME = "Language" CONTENT = "fr">    <meta   NAME = "Publisher" CONTENT = "KOUADIO A. T. Wilfried">    <meta   NAME = "Reply-to" CONTENT = "andoh_wilfried@caramail.com">    <meta   NAME = "Copyright" CONTENT = "© 2006 KOUADIO A. T. Wilfried">    <meta   NAME = "Generator" CONTENT = "maison">    <meta   NAME = "Description" CONTENT = "Site test.">    <meta   NAME = "Keywords" CONTENT = "rien">    <meta   NAME = "Indentifier-URL" CONTENT = "http://">    <meta   NAME = "Date" CONTENT = "Mon, 14 Oct 2006 16:00:00">    <meta   NAME = "Robots" CONTENT = "Index, Follow">    <meta   NAME = "Revisit-after" CONTENT = "15">    <base  href = "F:\Program Files\EasyPHP1-8\www\PHP_WebSite_Builder\">    <link    rel = "stylesheet" type = "text/css" href = "F:\Program Files\EasyPHP1-8\www\PHP_WebSite_Builder\css\styles.css">    <title>    TEST SITE WEB    </title>   </head>   <body>    <div id = "cadre_conteneur">     <div id = "cadre_principale">      <div id = "cadre_banniere">       <img id = "cadre_default"   src = ".\Images\logo_ccil.jpg">       </img>       <img id = "cadre_default"   src = ".\Images\banniere.jpg">       </img>      </div>      <div id = "cadre_hautdepage">       <a  href = "qw">       will       </a>       <span>       |       </span>       <a  href = "ty">       bill       </a>      </div>      <div id = "cadre_menu">       <div id = "cadre_default">        <div id = "titre_menu">        MES NEVEUX        </div>        <div id = "corps_menu">         <a  href = "qw">         Dorian          <br>         </a>         <a  href = "ty">         Noah          <br>         </a>        </div>       </div>       <div id = "cadre_default">        <div id = "titre_menu">        PAROLE & VIE        </div>        <div id = "corps_menu">         <a  href = "qw">         Les Membres          <br>         </a>         <a  href = "ty">         Contact          <br>         </a>        </div>       </div>       <div id = "cadre_default">        <div id = "titre_menu">        ANNONCE & JOBS        </div>        <div id = "corps_menu">         <a  href = "qw">         Etudiants          <br>         </a>         <a  href = "ty">         Autres          <br>         </a>        </div>       </div>      </div>      <div id = "cadre_news">       <div id = "cadre_news">        <div id = "cadre_default">         <div id = "titre_mini">         -> Bill         </div>         <div id = "corps_mini">         Comment va-tu ?         </div>        </div>        <div id = "cadre_default">         <div id = "titre_mini">         <- Will         </div>         <div id = "corps_mini">         Bien, et la famille ?         </div>        </div>        <div id = "cadre_default">         <div id = "titre_mini">         -> Bill         </div>         <div id = "corps_mini">         On fait aller         </div>        </div>        <div id = "cadre_default">         <div id = "titre_mini">         <- Will         </div>         <div id = "corps_mini">         Et le Basket, ca avance ?         </div>        </div>        <div id = "cadre_default">         <div id = "titre_mini">         -> Bill         </div>         <div id = "corps_mini">         Ouai, tres bien. Tu viens me voir quand ?         </div>        </div>        <div id = "cadre_default">         <div id = "titre_mini">         <- Will         </div>         <div id = "corps_mini">         Bientot, je suis sure que tu devines quand ?         </div>        </div>       </div>      </div>      <div id = "cadre_rubrique">       <div id = "titre_rubrique">       Bonjour WILL       </div>       <div id = "corps_rubrique">       Comment va-tu ?       </div>      </div>      <img id = "cadre_default"    name = "Will de London" width = "100%" src = ".\Images\scan0032.jpg">      </img>      <div id = "cadre_rubrique">       <div id = "titre_rubrique">       ECO       </div>       <div id = "corps_rubrique">       la recession de 1928 a ....<br>Ainsi parlant de ....<br>On pourrait prevoir ...<br>Si les marches n'anticipent pas ...<br>La prochaine crise bousiere ...<br>Elle aura des allures de revolution ...<br>Les forces geopolitiques ...<br>...       </div>      </div>      <div id = "cadre_hautdepage">       <a  href = "qw">       will       </a>       <span>       |       </span>       <a  href = "ty">       bill       </a>      </div>     </div>    </div>   </body>  </html> Page generee en 0.03378796
a partir de mon moteur PHP.

Du coup ca fait chier de reprendre le moteur. Vu que l'utilisation des Templates va pour ainsi dire mettre mon moteur OO
au garrage pour tout ce qui concerne la mise-en-forme.

57

Ca doit ê d'une rapidité tout ca .... cheeky
avatar
Webmaster et développeur du site. Pour tout probleme ou question envoyez un mini message ou mail.

Suivez l'actualité de tous vos site préférés sur yAronews : http://ns.yaronet.com =)

58

tsss c'est pas parce que l'objet n'est pas idéal pour l'optimisation vitesse que ce n'est pas adapté au travail d'équipe et à la modularisation du code tongue
avatar

59

[edit] cross

bah ça c'est juste parceque la vitesse de php en OO c'est de la merde, mais coté conception ça me semble bien plus propre qu'un truc pas du tout structuré; y'a juste qu'à espérer qu'un jour l'OO en php soit aussi rapide que si il avait été pensé dès le début
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

60

bah je crois que je vais tout reprendre en utilisant un moteur de template.
C'est dommage que je ne puisse pas adapter ca dans un autre language ( OO comme JAVA), pour generer du HTML.

Je vais me mettre a Smaty alors.