2012-05-10 6 views
0

Quel est le moyen le plus efficace de rendre une page avec PHP et HTML?Le moyen le plus efficace de rendre HTML et PHP

Concaténation

$html = '<span><img src="page.png" alt="page" />'.$variable1.'</span>'; 
echo $html 

variables Pour remplacer

$html = "<span><img src=\"page.png\" alt=\"page\" />{$variable1}</span>"; 
echo $html; 

Inline tags PHP - Cela ne semble pas pratique, même si elle est la plus efficace à grande échelle

<span><img src="page.png" alt="page" /><?php echo $variable1; ?></span> 

S'il vous plaît Supposons que vous générez une page entière. J'ai utilisé les extraits ci-dessus comme un exemple de chaque méthode.

Merci!

+0

Il y a aussi 'echo 'page', variable1 $, '',' chemin (note ',' au lieu de '. 'concaténation) Le', 'sort juste l'un après l'autre. – tigrang

Répondre

1

Cela dépend vraiment du but que vous essayez d'atteindre. S'il s'agit simplement de rendre une simple page, le moyen le plus efficace est de concaténer le code en utilisant un guillemet simple (basé sur le benchmark) (même si la différence n'est pas si importante).

Mais je suppose que vous construisez un site Web, et vous utiliserez largement html + php. Si oui, je vous recommande d'utiliser un moteur de template, ou directement PHP. L'utilisation d'un moteur de gabarit réduit les performances, bien sûr, mais améliore la lisibilité de votre projet et le structure mieux. Le rapport "performance perdue"/"lisibilité - maintenir" en vaut la peine. Vous devriez y aller (encore une fois, si vous envisagez de rendre plusieurs pages html). Voir MVC Design Pattern.

Maintenant, pour le moteur de template, je vous recommande d'utiliser directement PHP puisqu'il a d'abord été développé à cet effet. Vous pouvez trouver de nombreux moteurs de template qui utilisent finalement php dans les templates, et c'est la même chose pour Frameworks. Si vous jetez un oeil à Code Igniter par exemple, vous verrez que les modèles sont faits de php. Maintenant, pour des raisons de sécurité, l'utilisation de PHP dans votre modèle dépend grandement de qui va éditer les modèles. Si c'est seulement vous, ou quelqu'un que vous avez une confiance totale, vous devriez y aller. Si vos utilisateurs peuvent éditer les modèles (pour n'importe quelle raison), alors je dois absolument les éviter, car ils peuvent faire ce qu'ils veulent sur votre serveur, y compris cliquer sur la base de données, voir tous les fichiers (même les configurations)

+0

Qu'est-ce qu'un moteur de template? –

+0

Je ne suis pas sûr si vous ne comprenez pas la définition globale ou si vous voulez une définition plus précise. Vous devriez vous référer à la définition donnée par wikipedia, http://en.wikipedia.org/wiki/Template_processor et http://en.wikipedia.org/wiki/Template_engine_(web) –

+0

Ok, j'ai compris que le moteur de template signifie un qui représente des données ou des modèles de données de différentes manières. Mais en ce qui concerne PHP, à quoi pouvons-nous dire moteur de modèle? Est-ce la "vue" dans le modèle MVC ou autre? \ –

0

Le meilleur moyen est: lisible et maintenable. Cela dit, j'utiliserais probablement un moteur de template (comme twig ou smarty), mais si ce n'est pas disponible, je choisirai définitivement les balises php en ligne (comme celles utilisées dans les vues Zend Framework et les templates de succès Symfony).

Si je devais générer html à l'intérieur de php, j'irais pour sprinft('<img src="%s">", $src'); ou la concaténation. J'ai vraiment, vraiment n'aime pas l'utilisation de {$var} ou $html = "$var".

+0

Voir http://www.phpbench.com/ ... en fonction de la taille de la page et de sa microoptimisation. – djot

+0

C'est exactement pourquoi je vote pour la performance, mais pour "lisible et maintenable". Comme le début de mon message états. –

0

Il n'y a pas assez de différence de performance entre la matière et la mesure. Faites la chose la plus lisible.Dans mes (nombreuses) applications PHP J'utilise principalement des substitutions de PHP embarqué avec des balises courtes:

<p><?= $text ?></p> 
+1

Il est déconseillé d'utiliser shortags car certains hôtes/serveurs le désactivent afaik. – tigrang

+0

Les balises courtes sont toujours disponibles depuis PHP 5.4, quels que soient les paramètres du serveur. http://www.php.net/ChangeLog-5.php#5.4.0 –

+0

Si vous contrôlez votre propre serveur Web et ses paramètres, ce n'est pas un problème. Si votre FAI désactive les balises courtes pour une raison quelconque (je n'en ai jamais vu), vous pouvez soit changer de fournisseur d'accès, soit utiliser votre éditeur de texte pour trouver/remplacer les balises courtes afin de les transformer en balises longues. Les étiquettes courtes sont vraiment un non-problème. – gregjor

Questions connexes