votre avis m'interesse <?=

votre avis m'interesse <?= - PHP - Programmation

Marsh Posté le 25-09-2008 à 10:36:06    

question simple
 
je fait souvent ce genre de chose :  
<td><?php echo $variable ?></td>
 
et j'hésite souvent à utiliser cette syntaxe :
<td><?=$variable ?></td>
 
Bien ? pas bien ? quel est votre avis ?
 
Merci


Message édité par PierreC le 25-09-2008 à 10:36:22

---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 25-09-2008 à 10:36:06   

Reply

Marsh Posté le 25-09-2008 à 10:43:23    

bon je me réponds un peu à moi meme en faite par rraport à ce que je viens de trouver sur php.net :
 

Citation :

echo() dispose aussi d'une version courte, où vous pouvez faire suivre la balise PHP ouvrante d'un signe égal (=). Cette syntaxe n'est possible que si la directive de configuration short_open_tag  a été activée.


 
Mais ...

Citation :

Note: L'utilisation des balises courtes doit être banni lors de développements d'applications ou de bibliothèques qui sont destinées à être redistribuées, ou déployées sur des serveurs qui ne sont pas sous votre contrôle, car les balises courtes peuvent ne pas être supportées sur le serveur cible. Pour réaliser du code portable, qui peut être redistribué, n'utilisez jamais les balises courtes.


 
En effet certain outil genre wamp ont l'option short_open_tag désactivé ....
 
Donc en gros pour la pérennité du code il vaut mieux pas utiliser <?=
 
 
Mais votre avis m'intéresse toujours  :D


Message édité par PierreC le 25-09-2008 à 10:44:10

---------------
Du tofu en Alsace : www.tofuhong.com
Reply

Marsh Posté le 25-09-2008 à 10:51:32    

Tous les jours, mais ici on va te dire que c'est le mal ( pour ceux qui savent pas modifier leurs confs ) en bref .. un débat assez stérile en soit ..


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 27-09-2008 à 10:02:48    

Perso moi je fais :
 

Code :
  1. <?php
  2.  
  3. $string = '';
  4. $mavariable = 'hello';
  5.  
  6. $string .= '<b>'.$mavariable.'</b>';
  7. // et on continue avec des concaténations...
  8.  
  9. echo $string; // On fait un seul et unique echo.
  10.  
  11. ?>


 
C'est ce qui est recommandé. De même tes fonctions sont censées retourner des strings plutot que de des affichages sur la sortie standard.
Si tu as déjà prototypé ton application, et quand même fait des echo, tu peux utiliser les ob_start("ob_gzhandler" ) et compagnie, qui retiennent la sortie standard dans un buffer avant de tout lacher à la fin.

Message cité 3 fois
Message édité par CyberDenix le 27-09-2008 à 10:04:34

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 27-09-2008 à 10:05:48    

CyberDenix a écrit :


C'est ce qui est recommandé.


 
par qui?[:autobot]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 27-09-2008 à 10:59:13    

CyberDenix a écrit :

Perso moi je fais :
 

Code :
  1. <?php
  2.  
  3. $string = '';
  4. $mavariable = 'hello';
  5.  
  6. $string .= '<b>'.$mavariable.'</b>';
  7. // et on continue avec des concaténations...
  8.  
  9. echo $string; // On fait un seul et unique echo.
  10.  
  11. ?>


 
C'est ce qui est recommandé. De même tes fonctions sont censées retourner des strings plutot que de des affichages sur la sortie standard.
Si tu as déjà prototypé ton application, et quand même fait des echo, tu peux utiliser les ob_start("ob_gzhandler" ) et compagnie, qui retiennent la sortie standard dans un buffer avant de tout lacher à la fin.


 
moi je dirais plus echo $a, $b, $c, 'foobar' pour éviter de construire une chaine

Reply

Marsh Posté le 27-09-2008 à 20:32:41    

C'est recommandé d'après tous les tests que l'on peut voir sur Internet.
Construire une chaine et faire un seul appel à echo est la solution optimale en termes de rapidité.
 
Si l'on souhaite faire plusieurs appels à echo, la solution des virgules est effectivemment la meilleure.


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 27-09-2008 à 21:04:37    

CyberDenix a écrit :

C'est recommandé d'après tous les tests que l'on peut voir sur Internet.


 
huhu.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-09-2008 à 08:04:54    


on va plutôt dire qu'il est déconseillé de faire autrement [:petrus75].
 
Ca évite d'utiliser le php comme un langage sale.
 
accessoirement, on passerait plutôt par un système de templates [:petrus75]

Reply

Marsh Posté le 28-09-2008 à 13:25:07    

J'essaie le plus possible de ne retourner que des valeurs dynamiques avec echo :

Code :
  1. <?php
  2. $username = $user->getName();
  3. ?>
  4.  
  5. <html>
  6. <head>
  7. </head>
  8.  
  9. <body>
  10. <div id="username"><?php echo $username ?></div>
  11. </body>
  12. </html>


 
J'utilise pas les shorts tags en cas de changement de conf ou de serveur par exemple.

Reply

Marsh Posté le 28-09-2008 à 13:25:07   

Reply

Marsh Posté le 28-09-2008 à 13:54:15    

gatsu35 a écrit :

accessoirement, on passerait plutôt par un système de templates [:petrus75]


merci, c'est tout ce que je voulais lire ici.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 29-09-2008 à 11:17:37    

gatsu35 a écrit :


on va plutôt dire qu'il est déconseillé de faire autrement [:petrus75].
 
Ca évite d'utiliser le php comme un langage sale.
 
accessoirement, on passerait plutôt par un système de templates [:petrus75]

+1 ce qui est assez rapide à mettre en oeuvre :jap:


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 03-10-2008 à 00:50:14    

moi, perso, je mets une balise <?php au début de la premiere ligne que je dois coder en PHP et une balise ?> après la dernière ligne...
comme ça VRAOUMMM tout passe


---------------
http://www.ypikay.com
Reply

Marsh Posté le 03-10-2008 à 00:52:07    

CyberDenix a écrit :

Perso moi je fais :
 

Code :
  1. <?php
  2.  
  3. $string = '';
  4. $mavariable = 'hello';
  5.  
  6. $string .= '<b>'.$mavariable.'</b>';
  7. // et on continue avec des concaténations...
  8.  
  9. echo $string; // On fait un seul et unique echo.
  10.  
  11. ?>


 
C'est ce qui est recommandé. De même tes fonctions sont censées retourner des strings plutot que de des affichages sur la sortie standard.
Si tu as déjà prototypé ton application, et quand même fait des echo, tu peux utiliser les ob_start("ob_gzhandler";) et compagnie, qui retiennent la sortie standard dans un buffer avant de tout lacher à la fin.


recommandé par qui ?  
quand on code propre, on utilise pas de echo()

Reply

Marsh Posté le 03-10-2008 à 01:05:08    

quand on code propre, on utilise pas de echo()


 
Tu pourrais expliquer pourquoi ?


---------------
rule #1 : trust the python
Reply

Marsh Posté le 05-10-2008 à 16:50:16    

Astroboy34 >
 
Je t'invite à lire cette si belle ligne que tu as quotée mais que tu ne sembles pas avoir pris le temps de lire :
De même tes fonctions sont censées retourner des strings plutot que de des affichages sur la sortie standard.
 :whistle:  
 
 
 
suizokukan >
 
Parce que en théorie on préfère utiliser un fonction de substitution (pour échapper des caractères) ou retenir le flux pour effectuer un traitement dessus à la dernière minute (genre un petit preg_replace) ou obtenir un affichage de la page entière plutôt que morceau par morceau. Certains préfèrent faire des templates et réinventer PHP, comme le dit si bien mon pote Rasmus (Le créateur de PHP) :

Citation :

Rasmus Lerdorf :
PHP is a templating engine by itself. Adding another templating engine on top of it just doesn't make sense. The only situation where it makes sense, is when you don't trust the template to contain nice behaving code.


 :D

Message cité 1 fois
Message édité par CyberDenix le 05-10-2008 à 16:57:57

---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 05-10-2008 à 17:27:24    

CyberDenix a écrit :

Certains préfèrent faire des templates et réinventer PHP, comme le dit si bien mon pote Rasmus (Le créateur de PHP) :

Citation :

Rasmus Lerdorf :
PHP is a templating engine by itself. Adding another templating engine on top of it just doesn't make sense. The only situation where it makes sense, is when you don't trust the template to contain nice behaving code.


 :D

 

...et ils avaient tellement confiance en eux-mêmes qu'ils ont préféré lancer un moteur de templates eux-mêmes - smarty étant à la base un sous-projet du projet php...[:el g]


Message édité par skeye le 05-10-2008 à 17:27:41

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-10-2008 à 15:56:13    

Comme dit à la fin du paragraphe quoté : si tu ne veux pas que n'importe qui mette n'importe quoi comme code exécutable dans le template alors n'utilise pas php comme moteur de template. ;)
Il y avait donc au moins une raison autre que le manque de confiance en eux même dans la création de smarty : la méfiance envers les autres.
 
Phrase du jour : si tu ne peux pas contrôler ce que font les autres alors ne leur donne pas la possibilité de faire n'importe quoi.

Reply

Marsh Posté le 06-10-2008 à 16:16:02    

omega2 a écrit :

Phrase du jour : si tu ne peux pas contrôler ce que font les autres alors ne leur donne pas la possibilité de faire n'importe quoi.


 
faudrait leur expliquer, aux gens qui ont fait php, parce-que bon...[:joce]


---------------
Can't buy what I want because it's free -
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed