short_open_tags

Da_Chris

Erfahrenes Mitglied
Ich verwende in meinen Projekten gerne Templates ohne spezielle Engine nur mit php in Kurzschreibweise.
Dabei auch die Short Open Tags.
In den core direktiven von php sind diese auch default eingeschaltet aber ich hab schon gehört dass es Hoster gibt die das deaktivieren und die Tags auch nicht gern angesehen sind.
Was sind denn die Pro und Contras und gibt es (belegte) Pläne die komplett abzuschaffen?
Und wie macht ihr das? Werden die Kurzschreibweisen garnicht verwendet?
 
Also ich finde die Short-Open-Tags zunächst mal einfach hässlich. Die Tatsache das man es deaktivieren kann langt für mich schon diese nicht zu verwenden. Aber wenn ich mich nciht irre gibt es auch ein Problem, den diese Tags werden soweit ich weiß auch von anderen Sprachen verwendet, korriegiert mich falls es ich falsch liege!

EDIT:
Bestimmt, ob die Kurzform (<? ?>) des PHP-Öffnungs-Tags erlaubt werden soll. Wenn Sie PHP in Kombination mit XML benutzen wollen, dann deaktivieren Sie diese Option, um <?xml ?> nutzen zu können. Anderenfalls können Sie das Tag mit PHP ausgeben, z.B. <?php echo '<?xml version="1.0"'; ?>. Wenn diese Option deaktiviert ist, müssen Sie die Langform des PHP-Öffnungs-Tags (<?php ?>) benutzen.

Ich würde ganz einfach die normalen Tags benutzen!
 
Zuletzt bearbeitet:
naja die short tags eignen sich nunmal sehr gut für templates.
PHP:
text <?=$var;?> nochmehr text
müsste man so schreiben (was ich viel hässlicher finde):
PHP:
text <?php echo $var;?> nochmehr text

Mögliche Überschneidungen gibt es mit xml
PHP:
<?php ?>
<? ?> // ---> php oder xml :) 
<?xml ?>
Asp Tags sehen so aus:
PHP:
<% %>
 
bessere Variante?
Der Meinung bin ich nicht aber das führt vom Thema weg.

In den core Direktiven sind die short_open tags ja auch default an und ich finde es schade dass man sich von den Hostern diktieren lassen muss diese nicht zu nutzen....
Sinnvoll wäre der Kompromiss die tags default off zu setzen aber changeable auf PHP_INI_ALL wieder zu erweitern.
Dann könnte man bei bedarf die Tags dynamisch wieder aktivieren.
So bringt man die Entwickler jedenfalls die Short Open Tags nicht unbedacht einzusetzen.
 
Wenn du die Short Open Tags unbedingt verwenden willst könntest du auch so vorgehen:

In deinen Templates benutzt du ausschließlich <?=$var; ?>. Du prüfst zunächst in deiner Hauptdatei ob die Short Open Tags aktiv sind, und falls nicht durchsuchst du das Template mittels PHP nach dieser Zeichenkette '<?=' und ersetzt sie durch '<?php echo'. Somit hast du einen Kompromis.
 
Dann ist es einfacher eine htaccess ins verzeichnis zu setzen die die php flag short_open_tags auf on setzt.

Es geht mir nicht um Einsatz oder Implementation sondern mehr um eine Diskussion.
Um verschiedene Ansichten.
 
Hallo!

.....sondern mehr um eine Diskussion.
Wir sind hier aber nicht im Coders Talk. ;)

Nun, da man es einem Hoster nicht vorschreiben kann ob er short_open_tags aktiviert oder deaktiviert, sollte man die lange Schreibweise vorziehen.
Denn nur mit dieser ist man vor bösen Überraschungen sicher.
Der Hoster kann die Einstellung schliesslich ja auch jederzeit ändern.
Und die Sache mit der .htaccess kann er auch unterbinden (genauso wie z.B. ini_set()).
Bei kleineren Projekten ist es noch nicht weiter tragisch..... aber wenn Du ein umfangreiches Projekt mit unzähligen Scripten und tausenden Codezeilen hast, kann Dich die kurze Schreibweise ganz schnell in echte Schwierigkeiten bringen. :p

Wenn Du die vollen Entscheidungsfreiheit haben willst, musst Du Dir halt einen (v)Root-Server mieten/kaufen. ;)

Gruss Dr Dau (der sich aus o.g. Gründen von Anfang an angewöhnt hat die lange Schreibweise zu verwenden)
 
Wir sind hier aber nicht im Coders Talk. ;)
mh falls es hier falsch ist dann sorry aber ich hab das jetzt doch eher in php eingeordnet :D

Nun, da man es einem Hoster nicht vorschreiben kann ob er short_open_tags aktiviert oder deaktiviert, sollte man die lange Schreibweise vorziehen.
Denn nur mit dieser ist man vor bösen Überraschungen sicher.
Der Hoster kann die Einstellung schliesslich ja auch jederzeit ändern.
Und die Sache mit der .htaccess kann er auch unterbinden (genauso wie z.B. ini_set()).
mh naja jeder gute Hoster sollte sowas auch auf Anfrage anpassen ansonsten isses m.E. der falsche für den job...

Bei kleineren Projekten ist es noch nicht weiter tragisch..... aber wenn Du ein umfangreiches Projekt mit unzähligen Scripten und tausenden Codezeilen hast, kann Dich die kurze Schreibweise ganz schnell in echte Schwierigkeiten bringen. :p
naja wie gesagt in meinen scripten verwende ich die long_tags nur in den templates kommt die kurzschreibweise.
 
Nimm die lange Schreibweise, dann hast einheitlichen Code falls du mal mehr als nur ein echo machen musst. ;)

Gegenüber diesem:
PHP:
<a href="<?= $var ?>"/><?php $i++; echo $i; ?>ter Eintrag</a>

Ist das einheitlich, schöner und läuft auch ohne besondere .htaccess überall:
PHP:
<a href="<?php echo $var ?>"/><?php $i++; echo $i; ?>ter Eintrag</a>

Auch wenn das Beispiel an sich erstmal kein Sinn macht. Denk lieber an eine Schleife in dem Template.

Nunja, die nächst bessere Variante wäre eine Template Engine zu benutzen :)

OT: Bah, die Dinger in denen {var_hier} oder {foo} drin vorkommt?
Is ja ekelhaft. Niemals. Das mit dem echo geht schneller.
 
Zurück