543 votes

Les balises courtes PHP sont acceptable d’utiliser ?

Voici les informations selon la documentation officielle:

Il y a quatre paires de l'ouverture et la fermeture des balises qui peuvent être en PHP. Deux de ceux-ci, <?php ?> et <script language="php"> </script>, sont toujours disponibles. Les deux autres sont les balises courtes et ASP balises de style, et peut être activé et désactivé à partir de la php.ini fichier de configuration. En tant que tel, alors que certaines personnes trouvent les balises courtes et Les balises du style ASP pratique, ils sont moins portable, et généralement pas recommandé.

Dans mon expérience, la plupart des serveurs ne court tags activé. En tapant

<?=

est bien plus pratique que de taper

<?php echo 

Les programmeurs de confort est un facteur important, alors pourquoi ne sont-ils pas recommandé?

389voto

Oli Points 65050

Ils ne sont pas recommandés parce que c'est un pain PITA si vous devez déplacer votre code sur un serveur où il n'est pas pris en charge (et vous ne pouvez pas l'activer). Comme vous le dites, beaucoup de des hôtes ne soutien shorttags mais "beaucoup" n'est pas tous d'entre eux. Si vous souhaitez partager vos scripts, il est préférable d'utiliser la syntaxe complète.

Je suis d'accord qu' <? et <?= sont plus faciles sur des programmeurs qu' <?php et <?php echo mais il est possible de faire un vrac trouver et remplacer aussi longtemps que vous utilisez le même formulaire à chaque fois (et ne pas jeter dans les espaces (par exemple: <? php ou <? =)

Je n'achète pas la lisibilité comme une raison à tout. Plus grave, les développeurs ont l'option de coloration syntaxique à leur disposition.

Comme ThiefMaster mentionne dans les commentaires, comme de PHP 5.4, <?= ... ?> tags sont pris en charge partout, quel que soit shorttags paramètres. Cela signifie qu'ils sont sûrs à utiliser dans un code portable, mais cela ne signifie pas il n'y a alors une dépendance sur PHP 5.4+. Si vous voulez soutenir pré-5.4 et ne peut pas garantir shorttags, vous aurez toujours besoin d'utiliser <?php echo ... ?>.

178voto

Paolo Bergantino Points 199336

Je suis trop friand de `` laisser aller. Jamais eu de problème avec elle. Je vais attendre jusqu'à ce qu’il me mord dans le cul. En toute sincérité, 85 % de (mes) clients ont accès au fichier php.ini dans les rares occasions qu’ils sont éteints. Les autres 15 % utilisent les hébergeurs grand public, et la quasi-totalité d'entre eux ont leur permis. Je les aimes.

146voto

dukeofgaming Points 1472

À partir de PHP 5.4, le raccourci de l’écho est une question distincte des balises courtes, car ils seront toujours activés. C’est un fait maintenant :

Si le raccourci écho lui-même ( `` ) est sûr à utiliser maintenant.

83voto

Brian Lacy Points 4408

Le problème avec tout ce débat réside dans l'utilisation de PHP comme langage de templating. Personne n'affirme que les étiquettes devraient être utilisés dans les fichiers source de l'application.

Toutefois PHP intégrable syntaxe permet d'être utilisé comme un puissant modèle de la langue, et des modèles doit être aussi simple et lisible que possible. Beaucoup ont trouvé plus facile d'utiliser un beaucoup plus lent, l'ajout de moteur de template comme Smarty, mais pour les puristes d'entre nous qui demande un rendu rapide et une pure base de code, PHP est le seul moyen d'écrire des modèles.

Le SEUL argument valable CONTRE l'utilisation de balises courtes, c'est qu'ils ne sont pas pris en charge sur tous les serveurs. Commentaires à propos de conflits avec les documents XML sont ridicule, parce que vous ne devriez probablement pas être un mélange de PHP et XML de toute façon, et si vous êtes, vous devriez être en utilisant PHP à la sortie des chaînes de texte. La sécurité ne devrait jamais être un problème, parce que si vous mettez des informations sensibles comme base de données d'informations d'identification d'accès à l'intérieur des fichiers de modèle, eh bien, vous avez plus de questions!

Alors, à la question de la prise en charge du serveur, certes, on doit être conscient de leur plate-forme cible. Si l'hébergement mutualisé est une cible probable, puis court, les étiquettes devraient être évités. Mais pour beaucoup de développeurs professionnels (comme moi), le client reconnaît (et en effet, repose sur le fait) que nous dicter la configuration du serveur. Souvent, je suis responsable de la configuration du serveur, moi-même.

Et nous n'avons JAMAIS travailler avec un fournisseur d'hébergement qui ne nous donne pas le contrôle absolu de la configuration du serveur -- dans ce cas, nous avons pu compter sur l'exécution de beaucoup plus de mal que de simplement perdre du court en charge de la balise. Il n'a tout simplement pas se produire.

Donc oui, je suis d'accord que l'utilisation de balises doivent être soigneusement pesés. Mais je crois fermement qu'il devrait TOUJOURS être une option, et qu'un développeur qui est conscient de son environnement doit se sentir libre de les utiliser.

35voto

Jake McGraw Points 16515

Les balises courtes sont de retour grâce à Zend Framework en poussant le "PHP comme langage de template" dans leur défaut MVC de configuration. Je ne vois pas ce que le débat est sur, la plupart des logiciels que vous allez produire au cours de votre vie va fonctionner sur un serveur que vous ou votre société de contrôle. Tant que vous restez cohérent, il ne devrait pas y avoir de problèmes.

Mise à JOUR

Après avoir fait un peu de travail avec Magento, qui utilise la forme longue. Comme résultat, j'ai passé à la version longue de l':

<?php and <?php echo

plus

<? and <?=

Semble comme une petite quantité de travail pour assurer l'interopérabilité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X