|
Publicité ' | ||||||||||||||||||||||||
|
|
#81 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 242 ![]() |
Nous sommes sur un forum d'aide a la base... et donc nous sommes censés aider plus ou moins des gens a mettre au point leurs scripts... Or je dirais que peut etre 30% des problemes peuvent etre résolus avec la regle n°1 ou n°2.
Tout cela est évidemment a utiliser en phase de conception, pas de production... personnellement, AUCUNE requete ne s'affiche sur mon site, meme en cas d'erreur, mais je les logs quand meme dans un fichier a part pour détecter ce qui ne va pas. |
|
|
00
|
|
|
#82 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Justement, nous nous adressons nouvent à des néophytes qui ne font pas forcement la différence entre la phase de conception/test et la phase de fonctionnement. Il est important de préciser pour ces personnes.
|
|
|
00
|
|
|
#83 | |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 914 ![]() |
Citation:
tu peux être plus clair, stp ? |
|
|
|
00
|
|
|
#84 |
|
Expert Confirmé Sénior
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 2 172 ![]() |
tu ne fais aucun echo en cours de route tu construit ta sortie dans un buffer et tu ne fais qu'un seul et unique print ou echo
tu n'auras donc pas à te poser la question des perfs sur les différentes façon de faire un echo. de plus si aulieu de construire une chaine de caractère qui contient le HTML à générer tu construit un arbre (objet ou array) contenant les élément à afficher tu peux produire à la fin un format totalement différent de celui-ci au quel tu pensais au départ sans modifier ton programme. enfin si tu trouve que ton script à une fonction que tu peux réutiliser ailleur il devient simple d'en faire une fonction et pour finir qi pendant l'utilisation de ton script on relève un pb il est facile de savoir si c'est un pb d'affichage et donc tu ne touche qu'à l'affichage qui ets à un seul endroit ou si c'est fonctionnel auqu'el ca tu touche la fonction sans risque de casser l'affichage ça s'appelle la séparation des couches et c'est vieux comme l'informatique A+JYT |
|
|
00
|
|
|
#85 | |
|
Membre éclairé
![]() Inscription : novembre 2006 Messages : 336 ![]() |
Citation:
|
|
|
|
00
|
|
|
#86 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 914 ![]() |
Si t'as une fonction displayX(), est-ce qu'il y a un intérêt de créer une variable supplémentaire dans celle-ci plutôt que d'écrire directement sur la sortie ?
|
|
|
00
|
|
|
#87 |
|
Membre émérite
![]() Étudiant Inscription : septembre 2006 Messages : 512 ![]() |
Avec une variable, on fait ce qu'on veut. On peut par exemple décider d'enregistrer le résultat dans un fichier au lieu de l'afficher et ce en changeant juste l'instruction finale.
|
|
|
00
|
|
|
#88 |
|
Expert Confirmé Sénior
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 2 172 ![]() |
J'ai eu le cas ressemement
j'avais une page qui retournais un ensemble d'info à l'utilisateur quelqu'un ma demandé si on pouvais avoir la même chosesous forme de service Web au lieu de retrourner du HTML je retourne du XML (SOAP) Je n'ai touché à aucune ligne de code seul le formatage à été impacté A+JYT |
|
|
00
|
|
|
#89 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 242 ![]() |
je me fais l'avocat du diable (je sais, c'est pas bien ;o) mais si on a un script bourré d'"echo" partout, rien n'empeche d'avoir :
Code :
|
||
|
|
00
|
|
|
#90 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 9 ![]() |
Bonjour,
Quelle est la bonne arborescence pour un projet/site en php ? histoire de séparer les class, les includes, les pages, les images ? (ainsi que les scripts JS, CSS et autres) Et dans un script, lorsque qu'on a accède plusieurs fois à $_POST['mail'] par exemple, vaut il mieux l'enregistrer dans une variable ( $mail = $_POST['mail']; ) ou peut on a chaque fois faire appel à $_POST['mail'] tout au long de la page, sans augmenter le temps d'exécution, les ressources consommer, etc... Merci |
|
|
00
|
|
|
#91 | |||||
|
Expert Confirmé Sénior
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 2 172 ![]() |
Citation:
attention il faut dans ce cas là penser qu'il y a peut-être déjà un truc crade avec ob_start et donc penser à Gérer plusieurs buffer il faut donc écrire des callback approprié pour gérer correctement les imbrications de ob_start du coup les perf en prennent un grand coup car non seulement on utilise des echo plus couteux que des affectation de chaines pour les dérouter dans ob_start qui lui même utilise de collback pour faire l'affectation c'est tout de même beaucoup plus simple de faire des affectation d'une variable Code :
si tu as une modif d'affichage elle est obligatoirement dans la fonction Display si tu as une modif de traitement elle est obligatoirement dans la fonction idoine A+JYT |
|||||
|
|
00
|
|
|
#92 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 914 ![]() |
Le MVC c'est bien pour la maintenance mais moins pour les perfs ^^ La séparation peut tout du moins être faite à un autre niveau, sans buffer :
Code :
Pour ce qui est de l'utilisation des tableaux $_POST etc. si tu copies ta valeur dans une autre variable tu ne sais plus d'où elle vient alors qu'en utilisant $_POST['mail'] c'est lisible tout de suite. Après ca dépend si tu la passes dans une méthode d'objet, ca va un peu à l'encontre du principe d'encapsulation d'utiliser des globales. Tu peux aussi utiliser des préfixes pour savoir si tes données ont été vérifiées/cleanées mais en PHP la question se posent moins étant donné que les variables externes sont dans des tableaux $_POST, $_GET, etc (donc tu sais justement que les valeurs sont pas clean tant que tu les prends dans les tableau). Pour ce qui est de l'arbo personnellement je fais au plus simple : css --layout.css --text.css --classes ----user.css inc classes -- user.class.php js img etc. avec des htaccess dans les rép accessibles uniquement par PHP |
||
|
|
00
|
|
|
#93 | |
|
Inscrit
Djangonaute Linuxien Inscription : octobre 2006 Messages : 642 ![]() |
Ne pas dépasser 76 caractères par ligne : pensez à ceux qui ont de petits terminaux.
Documentez votre code (phpDocumentor).
__________________
Blog / Github / StackOverflow Citation:
|
|
|
00
|
|
|
#94 | |
|
Membre émérite
![]() Étudiant Inscription : septembre 2006 Messages : 512 ![]() |
Citation:
Comment echo peut-il envoyer plusieurs arguments sur la sortie ? Les seules solutions sont utiliser la concaténation (or, si utiliser des virgules ou des points revenaient au même, ça se saurait) ou s'appeler lui-même plusieurs fois de suite. Conclusion : utiliser echo avec la virgule revient bien à appeler echo plusieurs fois de suite.
|
|
|
|
00
|
|
|
#95 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Nimporte quoi mdr.
Soit tu fais la concaténation en php Code :
echo('tralala' . 'trucmachin' . 'tralalatsointsoin'); Code :
echo('tralala', 'trucmachin', 'tralalatsointsoin'); |
|
|
00
|
|
|
#96 |
|
Membre émérite
![]() Étudiant Inscription : septembre 2006 Messages : 512 ![]() |
Au final, la concaténation est de toutes façons faite en C, non ?
De plus, il y a des cas ou le point est plus rapide que la virgule, je ne pense donc pas que le niveau où se fait la concaténation soit si elle existe la seule différence. |
|
|
00
|
|
|
#97 | |
|
Inscrit
Djangonaute Linuxien Inscription : octobre 2006 Messages : 642 ![]() |
Je ne pense pas que l'usage direct de echo soit une bonne pratique. Je pense qu'il faut utiliser un systême de templates.
__________________
Blog / Github / StackOverflow Citation:
|
|
|
00
|
|
|
#98 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Là n'est pas la question is_null ^^
|
|
|
00
|
|
|
#99 | |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Citation:
Surtout que c'est le genre qui ont des chances d'être modifiée par l'équipe de php afin de l'améliorer.... Ce post devrait plutot débattre de technique,choix de conception, d'écriture un peu plus universel à toutes les versions de PHP plutot qu'à quelques broutilles... Une question qui me trotte dans la tête depuis un bout de temps et à laquelle je ne trouve pas de réponse absolue. Pour ceux qui développe en OO, lorsque vous concevez vos classes d'accès aux données. Celles-ci respectent t'elle précisèment la structure de votre base de données (une classe = une table), ou bien cassez vous la structure de votre base de données lors du passage en objet (une classe peut piocher dans plusieurs tables) ? Perso j'ai opté pour la première méthode, cependant cela n'est pas toujours adapté car ce que l'on peut faire en une requete via la bdd, je le fait en N requetes en utilisant le modèle objet.... En même temps j'ai la hantise d'éparpiller mon modéle de données dans mon modèle objet car lors d'une mise à jour cela imposera de vérifier plus de codes, et certaines portions passeront surement à la trappe. Ce qui in fine créera de nouveaux bugs... Vous concernant quels choix avait vous fait ? bye |
|
|
|
00
|
|
|
#100 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Personnellement, une classe = un objet précis. Une table n'est pas forcément égal à un objet car un objet peut avoir plusieurs attributs qui sont répartis dans plusieurs tables dues aux multiplicités.
Et ma classe ne "pioche" pas dans les bases car elle n'y accede pas, elle demande à une classe DB les informations et elle seule connait la syntaxe de mes tables et communique avec la base. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com