10
votes

Utilisation lourde de la balise «

Certains code PHP que je regarde est jonché de "" Tags en fonction de sa sortie HTML ou non. Y a-t-il un bénéfice de performance à cela plutôt que d'utiliser ECHO pour écrire le HTML? Il rend le code extrêmement difficile à lire lorsque le code passe en permanence entre code et HTML via la balise "

Notez que je ne parle pas simplement du passage occasionnel. Le code que je regarde actuellement (le code source de MANTIS-BT) me donne un mal de tête avec le nombre de fois qu'il change. Très difficile à lire.

Je me demande s'il y a une raison pour qu'ils le font comme ça?


5 commentaires

Pas un problème de performance à moins que vous soyez Facebook.


Lorsque la page est principalement HTML, le consensus (par une marge mince quand même) semble être une mauvaise utilisation de l'écho est une forme de mauvaise forme. D'autre part, si la page ne séparait pas la logique de contrôle et la logique commerciale de l'écran, elle est également considérée comme une forme de mauvaise forme. J'ai entendu de manière anecdotale que la surcharge pour echo est comparable à la surcharge de la commutation et de sortie de blocks, mais je ne trouve pas de référence pour vous .


Quel que soit le temps que votre Facebook, vous devez toujours écouter et apprendre aux méthodes utilisées sur Facebook, ainsi que de nombreux autres grands sites.


Sauf si c'est un script PHP de 2 Go de millions d'occurrences, la différence de vitesse serait difficile à mesurer.


Le programmeur ne savait probablement pas "Echo". Sentez-vous de la chance ... au moins vous n'avez pas hérité de code d'un programmeur qui ne savait pas que vous pourriez avoir plus d'une table dans une base de données :(


7 Réponses :


0
votes

Bien que cela ne produirait aucun effet notable en ce qui concerne le temps d'exécution du code, l'idée que c'est le seul endroit que "performance" devrait être calculé, est ridicule. Les développeurs coûtent de l'argent. Donc, le nettoyage de ce tout est une performance boost! Votre propre performance!

alors faites-le.


0 commentaires

0
votes

PHP offre certaines fonctionnalités qui ne sont pas proposées par HTML, telles que des boucles. Ainsi, si vous devez utiliser des boucles plusieurs fois dans votre code, vous devez continuer à commuter entre les balises PHP et HTML. De plus, PHP vous aide à implémenter le contrôle de la session qui n'est pas autorisé par HTML. Ainsi, il est important de Intégrer PHP dans HTML

en un mot, pour utiliser des fonctionnalités supplémentaires, nous devons utiliser php ou une autre langue


1 commentaires

Je pense que vous êtes mal compris ma question. Je ne demande pas pourquoi nous utilisons php. Je demande pourquoi le code contenant beaucoup de code PHP ressent la nécessité de basculer en permanence pour faire écho à l'écho du HTML. Plutôt que d'utiliser la commande ECHO.



2
votes

raisonne que cela pourrait être comme si c'était pour des situations telles que ceci: xxx

au lieu de: xxx

Il y a moins de caractères d'évacuation à s'inquiéter de.


7 commentaires

Mais dans votre exemple, vous auriez pu simplement utiliser une seule citation au lieu de les échapper.


Personnellement, j'aime bien l'exemple du haut aussi. Si vous souhaitez modifier votre HTML ou vous avez reçu une mise à jour d'une autre page, il est plus facile de le déposer.


Vous avez raison, sauf si vous voulez des chaînes interpolées. Ce que je n'ai pas montré dans mon exemple parce que vous ne pouvez pas accéder à vos variables de session comme ça. Je serai d'accord avec Don, cependant. PHP permettra d'analyser votre text serveur au lieu d'un texte simple que PHP ignorera et envoie directement au navigateur de l'utilisateur.


Une autre suggestion: echo " Bienvenue, {$ _Session ['utilisateur']} "; c'est ce que les citations doubles sont faites pour PHP.


Merci thaïlandais, apprendre quelque chose de nouveau encore ... Je n'ai jamais vu {} utilisé pour accéder à vos superbégals comme ça.


Pourquoi ne pas utiliser de guillemets doubles? Simple, car vous devez échapper à votre sortie et vous ne pouvez pas le faire avec des guillemets doubles. Où est htmlspecialchars ? Sinon, cela est probablement ouvert à XSS ...


Je ne voulais pas dire que mon échantillon de code est une "meilleure pratiques". Je voulais dire cela pour démontrer les raisons pour lesquelles les personnes pourraient exclure la sortie HTML de l'écho et laisser à l'extérieur des étiquettes PHP.



3
votes

aucune raison sans raison en dehors de ses scripts débutants, il suffit d'obtenir les résultats à la page sans aucune pensée architecturale ni de planifier dans le système à long terme.

Ce que vous devriez faire, c'est fractionnement de votre motif à l'écart À partir de votre code PHP logique et que la compilation de design doit être effectuée à la fin du temps d'exécution des scripts.

Si vous redessinez l'application, je vous conseillerais certainement de commencer par un cadre car le cadre forcera de mauvaises habitudes loin de sa conception.

Démarrer avec CodeIdigniter et créer un blog simple, comprenez comment connecter / insérer / sélectionner / mettre à jour avec la base de données, apprenez à gérer les sessions, apprenez les contrôleurs et les principes de la création d'une .

Après avoir eu un jeu décent sur le point de commencer à regarder l'applicatioon mal codé d'une distance qui ne regarde pas le code ou la conception, mais ce que c'est exactement le faire, est-ce que cela récupère les résultats de la base de données, a-t-il un système d'utilisateur, etc., etc.

alors s TARTE Mise en œuvre de la couche de base de l'application, telle que ci-dessus, une fois la base de données conçue, vous pouvez alors commencer à construire les modèles à extraire de la base de données au point de votre application, commencez à créer les fichiers de vue de base prenant échantillons < / Fort> de l'application codée en matière de pooorly et les recoder dans la nouvelle application, gardant à l'esprit la structure et la propreté du codage.

J'espère que cela vous aide à commencer à migrer parce que je ne vous conseille certainement pas de continuer à travailler avec une application telle que celle-là.


@Mitch

Evénement Vous avez pensé que la deuxième pièce de code est plus propre, c'est plus propre combinant votre vue avec le reste de votre application où il devrait être Comme: xxx

Un ensemble dédié de procédés de vue pour l'empêcher d'interagir avec la logique principale, cela serait enveloppé dans un objet pour empêcher la portée et uniquement l'objet devrait être capable d'accéder à la logique principale.


0 commentaires

0
votes

Je n'ai pas de données statistiques pour sauvegarder cela, mais je crois comprendre qu'il est plus efficace de "désactiver" PHP pour produire HTML plutôt que d'utiliser ECHO ""; La raison étant que lorsque vous exécutez votre HTML via ECHO TAGS, vous avez PHP Paysez-le à l'affichage, tout en le mettant dans le DOC lui-même, laissez le navigateur l'afficher sans avoir à avoir une analyse PHP.

Quand j'ai fait du développement de Coldfusion, je me souviens d'avoir entendu le même cas pour les étiquettes.


0 commentaires

0
votes

Je préfère utiliser le et ?> car il est plus facile de lire HTML, mais Si une perte de performance sera très peu. J'ai écrit HTML Avec echo mais c'est très mauvais de lire et de trouver des problèmes dans le HTML.


0 commentaires

17
votes

En ce qui concerne la lisibilité, je préférerais voir: xxx

que: xxx

non seulement cela, mais ce dernier laisse Votre IDE de choix gère la syntaxe HTML et le formatage (vous indiquant, par exemple, que le est manquant). Ainsi, sauf si il y a beaucoup plus de choses en train d'entrer entre les bits courts de HTML, peut être préférable.

EDIT: Performance, toute personne sérieuse sur la vitesse du code activera un pré-compilateur de mise en cache qui entraînera des versions exactes à la même chose.


7 commentaires

au lieu de pourquoi pas img ($ item-> icône)


@Robert Vous voudrez peut-être ajouter un texte alt à cette chose.


alors img ($ icône-> icône, "emplacement", "alt", tableau ("classes", "ici")) Cela semble juste beaucoup Natre et lorsque vous obtenez des modèles d'utilisateurs réguliers respecterait votre création HTML réduisant ainsi le code HTML non valide


@ROBERT: Nouveaux programmeurs sur le projet SAVOIR (espérons-le-dire) Comment fonctionne, mais ils ne sont peut-être pas familiarisés avec les multiples arguments requis pour img () pour ajouter des classes , ALT-TEXT ou d'autres attributs, ils ne seront pas aussi perceptifs lors de la première session de formation pour se rappeler que img () existe en premier lieu. TL; DR: KISS.


Merci pour le baiser Ha, oui, je comprends mais utilisez CI comme exemple, où ils peuvent spécifiquement permettre certains aspects de l'application.


C'est une condition de fonctionnalité qui justifie les sacrifices correspondants. Je pourrais trouver des arguments similaires pour la sortie de PHP XML et que XSLT effectue le formatage réel, ou PHP uniquement générer des fichiers statiques desservés par LightPD ou un CDN, ou un nombre d'autres couches d'abstraction au-dessus de ce qui est finalement la génération de certains HTML - décider Ce que "trop ​​d'abstraction" signifie sur une base par projet.


Je vais marquer cela comme la réponse, comme la seule raison valable que j'ai vue mentionnée pour le faire, comme il s'agit de la syntaxe de l'IDE soulignant que vous avez mentionné.