ahhir: alternative Syntax für Kontrollstrukturen

Guten Abend,

warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

Was sind Vorteile/Nachteile?
Was gilt es dabei zu bedenken/beachten?

Seid gegrüßt

  1. Lieber ahhir,

    warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

    1.) Was sind "phtml-Templates"?
    2.) Was ist Dein Problem?
    3.) Warum sollten wir soetwas benötigen, damit wir Dir dazu vernünftige Ratschläge geben könnten?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

      1.) Was sind "phtml-Templates"?

      phtml ist eine etwas antiquiert Endung für PHP-Scripte - wie allgemein bekannt wurde PHP ursprünglich als Template-Toolkit bzw. Template-Sprache konzipiert und lässt sich auch heute noch so einsetzen.

      1. Hallo,

        warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

        1.) Was sind "phtml-Templates"?

        phtml ist eine etwas antiquiert Endung für PHP-Scripte - wie allgemein bekannt wurde PHP ursprünglich als Template-Toolkit bzw. Template-Sprache konzipiert und lässt sich auch heute noch so einsetzen.

        http://framework.zend.com/manual/en/learning.quickstart.create-project.html s. View und auch Svens Beitrag. Von antiquiert kann keine Rede sein. Zend-Framework ist up-to-date! Ich habe aus dem Aufbau des Frameworks viel gelernt. PHP wird m.E. dort voll ausgereizt in seinen Möglichkeiten. Weiß nicht, wo das sonst noch in anderen Frameworks geschieht. Die haben sich ja auch eine Menge abgeschaut bei Ruby on Rails und anderen PHP-Frameworks.

        S.a.

        http://www.codedifferent.de/2008/03/22/ruby-on-rails-oder-zend-framework-die-entscheidung/

        http://www.codedifferent.com/2008/04/02/ruby-on-rails-or-zend-framework-–-deciding-now/#comments

        http://en.wikipedia.org/wiki/Zend_Framework

        Gruß

        jobo

  2. warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

    Wer sagt das?

    Was sind Vorteile/Nachteile?

    Ternäre Operatoren sind kürzer als durch Anweisungsblocke bedinge Verzweigungen aber dafür schwerer lesbar - sie sind in manchen Fällen austauschbar, in manchen aber nicht.

    Was gilt es dabei zu bedenken/beachten?

    Wäge zwischen Anwendbarkeit und Lesbarkeit ab, wenn beides möglich ist, würde ich zur lesbareren Version tendieren.

    Das ist wie mit short_open_tag <?=$variable?> oder <?php echo $variable; ?> ist ansich egal - wenn man von geschichten wie Lesbarkeit, portablem Code, Einsteigerfreundlichkeit oder vergleichbarem absieht.

    Ebenso ist folgendes möglich

    <?=(($cond) ? 'foo' : 'bar' )?>  
      
    <?php echo (($cond) ? 'foo' : 'bar' ); ?>  
      
    <?php if($cond) { echo 'foo'; } else { echo 'bar'; } ?>  
      
    <?php  
      if($cond) {  
        echo 'foo';  
      } else {  
        echo 'bar';  
      }  
    ?>
    

    Es ist eine schlichtweg an eine Frage der CGL (die natürlich auch implizit aus dem eigenen Geschmack entstehen können).

    1. Moin!

      warum sollte man die alternative Syntax für Kontrollstrukturen in z. B. "phtml-Templates" verwenden?

      Wer sagt das?

      Was sind Vorteile/Nachteile?

      Ternäre Operatoren sind kürzer als durch Anweisungsblocke bedinge Verzweigungen aber dafür schwerer lesbar - sie sind in manchen Fällen austauschbar, in manchen aber nicht.

      Du hast die Frage falsch interpretiert.

      Mit der "alternativen Syntax" sind keine ternären Operatoren gemeint, sondern folgendes:

      "Normalerweise"
      [code lang=php]<?php if (true) { ?>
      <p>true!</p>
      <?php } else { ?>
      <p>false!</p>
      <?php } ?>
      [/code]

      "Alternativ"
      [code lang=php]<?php if (true): ?>
      <p>true!</p>
      <?php else: ?>
      <p>false!</p>
      <?php endif; ?>
      [/code]

      Gesagt, dass man das so machen soll, wird unter anderem im Coding Standard vom Zend Framework. Von dem kommt auch die Dateiendung ".phtml" für die Views, die unter Auslassung jeglicher Template-Engine direkt als PHP-Skript programmiert werden - nur eben mit der alternativen Syntax.

      Der Grund ist, dass die unvermeidliche Mischung von Kontrollstrukturen und Schleifen, die zwangsläufig in PHP stattfinden wird, mit direktem HTML-Output (niemand mag endloses Echo), auf diese Weise zu einer übersichtlicheren Struktur führt, als wenn man unvermittelt, vor allem bei Verschachtelungen, einfach nur auf eine schließende Klammer trifft, bei eben nicht auf den ersten Blick klar ist, ob die nun zu dem angefangenen IF, FOREACH oder SWITCH gehört.

      - Sven Rautenberg

      1. Du hast die Frage falsch interpretiert.

        Ja scheinbar, ich hatte bei Alternativer Syntax - obwohl das eigentlich eindeutig ist - etwas Anderes im Kopf.

        Gesagt, dass man das so machen soll, wird unter anderem im Coding Standard vom Zend Framework.

        Dann ist die Frage von meiner Antwort wenigstens auch halbwegs beantwortet :) wenn es die CGL vorgibt, wird nicht weiter gefragt ;)

        Der Grund ist, dass die unvermeidliche Mischung von Kontrollstrukturen und Schleifen, die zwangsläufig in PHP stattfinden wird, mit direktem HTML-Output (niemand mag endloses Echo), auf diese Weise zu einer übersichtlicheren Struktur führt, als wenn man unvermittelt, vor allem bei Verschachtelungen, einfach nur auf eine schließende Klammer trifft, bei eben nicht auf den ersten Blick klar ist, ob die nun zu dem angefangenen IF, FOREACH oder SWITCH gehört.

        Wenn ich bei Punkt 1 nicht gescheitert wäre, hätte ich ebenfalls so geantwortet. Dem ist nichts hinzuzufügen.