Bonjour, vaut il mieux creer une page completement en php avec des echo pour afficher l'html ou est il preferable de faire les parties en php et de refermer ?> pour inserer de l'html puis de rouvrir pour le php et ainsi de suite !!
Version imprimable
Bonjour, vaut il mieux creer une page completement en php avec des echo pour afficher l'html ou est il preferable de faire les parties en php et de refermer ?> pour inserer de l'html puis de rouvrir pour le php et ainsi de suite !!
Bonjour,
Surement déjà débattu mais j'ajoute ma petite expérience.
Justement par expérience, je sépare au maximum le code php et la partie html. Il m'arrive de ne travailler l'affichage qu'avec des echos/print etc...
De surcroit, pour par mal de projet, j'utilise un moteur de template, d'où une vrai séparation datas / affichage
Donc pour la lisibilité, la maintenance, la performance (peut-être), bien séparé les deux parties d'abord php et ensuite l'affichage
Voilà
Bonjour,
Ce qui est miieux, je n'ai pas la prétention de le dire. Mais voilà la structure que je préfère :
En gros, puisque j'utilise moi aussi des templates, mais l'idée est là.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php //tous mes traitements métiers //en alimentant des variables qui seront affichées ?> <html> <head> </head> <body> ... <p>Il y a <?php echo $maVariable;?> machins dans le truc</p> <p>etc...</p> </body> </html>
Bonjour,
Je pousserais même le vice à n'avoir qu'un require_once() tout au début de mon fichier qui contiendrait mon HTML et au final avoir quelque chose comme :
mapage.php // Contient le code HTML
mapage.class.php // Contient le code PHP
Comme l'on très bien dit jml94 et FCYPBA, l'idée est de séparer au maximum la vue (HTML), du traitement (PHP), et pour celà rien ne vaut un moteur de template.
Concernant l'inclusion de blocs php multiples dans un code html voici ce que dit le manuel php :
Si j'essaie de faire un résumé ;)Citation:
Cette démarche convient parfaitement quand la majorité des pages de votre site est statique, avec cependant quelques parties dynamiques. L'intérêt est un faible impact sur les ressources du serveur Web. PHP n'est utilisé que lorsque celà est absolument nécessaire. L'étape suivante consiste à bâtir un site uniquement avec PHP, un site dont chaque octet de la sortie provient de scripts. On utilise alors la fonction print pour afficher des balises HTML. Chaque page est un script délimité par une paire de balises PHP. D'après notre expérience, la génération de tout le code HTML par un script PHP permet d'effectuer rapidement des modifications. L'intérêt de ces techniques, à l'instar de nombreuses autres, est proportionnel à la taille du projet. La dernière approche que nous voulons ici traiter implique le recours aux fonctions include et require. Dans cette approche, le HTML et le PHP sont divisés en modules. Ceci nous porte au-delà de l'intégration du HTML et de PHP pour nous amener à la conception structurelle d'un site. Il est en effet possible de créer un site avec un seul script PHP.
- PHP inclut dans HTML si le projet est de petite envergure et ne contient pas beaucoup d'éléments dynamiques.
- PHP génère les pages HTML pour les sites plus importants car plus facile à éditer.
- PHP et HTML séparés dans des fichiers externes et incluts grâce aux fonctions include ou require pour une construction plus structurée.
Voilà, c'est tout ce que je peux apporter mais bon c'est ce que dit le manuel :D
Bonne soirée,
merci pour toutes vos reponses, comment fonctionne un moteur de templates ?? en avez vous un a me conseiller !!
Moi je vous conseillerais Smarty, maintenant c'est le seul que je connaisse :mouarf:
Ensuite pou savoir comment ça fonctionne je vous laisse vous documenter :)
Globalement ça sert juste à séparer la logique (PHP) de l'affichage (HTML), et permet aussi une gestion du cache pour améliorer la vitesse.
Edit : Curieusement le site répond plus, il semble avoir quelques soucis :?
Moi aussi j'utilise un moteur de template me permettant de séparer complètement les 2 codes.
Pour le choix de ton moteur, va jeter un oeil dans le forum consacrés aux template, il y à de nombreux post traitant du choix du moteur de template avec les avantages et inconvénients.
Je crois que smarty est un des plus utilisé et puissant, mais il parait qu'il y à pas mal de code à insérer dans le HTML, donc pas forcément idéal si le but est de séparer le code mais qu'il faut rajouter plein de code smarty.
Pour ma part j'utilise le moteur de la phplib qui est je crois le plus ancien, mais aussi un des plus simple d'utilisation avec peu de code.
ça rempli bien un de ses objectifs de séparer le php et le html ... je te rassure.
un petit exemple :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <div id="say">{$say}</div> {/if} <h2>{$h2}</h2> <fieldset> <legend>{$legend}</legend> <h3>Liste des bannieres classées par site : </h3> <div> <a href="#" onclick="allHidden();">Tout réduire</a> </div></br> <ul> {foreach from=$liste_sites item=list_sites_curr key=k_sites name=site} <li><span class="overline">{$list_sites_curr}</span></li></br> {foreach from=$liste_bans item=list_bans_curr key=k name=ban} {assign var='i' value=$smarty.foreach.ban.iteration} {if $k_sites == $list_bans_curr.id_sites} <a onmouseover="Tip('<img src=\'{$list_bans_curr.url}\' alt=\'{$list_bans_curr.url}\' border=\'0\' />', BORDERCOLOR, '#DDDDDD');" onclick="displayEditBan('field_{$i}');"><img src="{$list_bans_curr.url}" {$list_bans_curr.dim} alt="{$list_bans_curr.url}" border="0" /></a> <form method="POST" action="" name="f_{$i}" id="f_{$i}"> <fieldset id="field_{$i}" style="display:none;"> <legend class="legend2">{$legend2} {$i}</legend> <div class="formu"> <div class="images"><img src="{$list_bans_curr.url}" alt="{$list_bans_curr.url}" border="0" /></div> <div class="libelle"> <div>URL :</div> <div>width :</div> <div>height :</div> <div>id site :</div> <div>langue :</div> <div>niche :</div> <div>active :</div> <div>freevar :</div> </div>
Je sais bien puisque c'est le but, ce que je disais, c'est que le moteur de template à son propre code, et s'il est trop lourd, on sépare bien le PHP du HTML mais on remélange une autre couche au HTML, donc pas forcément plus simple.Citation:
ça rempli bien un de ses objectifs de séparer le php et le html ... je te rassure.
La preuve dans ton exemple, moi qui connais pas smarty, je vois des foreach, je pensais au début que c'etait du php, je comprenais pas trop
effectivement il faut parcourir la doc plus d'une fois pour bien situer les différentes possibilités et pouvoir les exploiter.
Je voulais juste nuancer tes propos.
Certainement pas niveau performance, un moteur de template demande plus de traitement que de faire comme jml94
Il n'y a pas de méthode universelle...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php //tous mes traitements métiers //en alimentant des variables qui seront affichées ?> <html> <head> </head> <body> ... <p>Il y a <?php echo $maVariable;?> machins dans le truc</p> <p>etc...</p> </body> </html>
Le mieux pour moi serait de faire appel à plusieurs includes pour séparérer en plusieurs petits fichiers et de laisser le PHP dans le HTML...
ok merci pour tout je comprend mieux maintenant et je crois que je vais approfondir vos exemples !!
Probablement car il rajoute une couche supplémentaire, mais un moteur de template à l'énorme avantage de pouvoir faire travailler 2 compétences (programmeur en php et déseigner en html) séparement sans se marcher sur les pieds.Citation:
Certainement pas niveau performance, un moteur de template demande plus de traitement que de faire comme jml94
Et aussi de pouvoir changer le look d'un site ou d'en avoir plusieurs (style phpBB) sans changer au code php.
tu m'arretes si je me trompe mais le look est géré par une page CSS dans PHPBB non ??
Hello,
d'accord niveau template 2 couches 2 personnes différentes.
Mais logiquement, un site bien fait, tout son design peut être modifier via CSS si on veut lui donner un habillage différent.