Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19
  1. #1
    Meister des Grills Avatar von c4pone
    Registriert seit
    08.11.2006
    Beiträge
    167

    Idee PHP und HTML trennen !

    Ich seh immer wieder das Leute HTML mit PHP ausgeben (z.B
    PHP-Code:
    echo  '<br>'
    Als PHPler krieg ich da immer wieder den Kotzreiz,denn meiner Meinung nach sollte man diese beiden Dinge stehts voneinander trennen.
    Also Ausgabe stehts von Programmlogik trennen.

    Eigentlich keine große Sache und wenn man sich einmal dran gewöhnt hat hilft es ungemein
    Naja ich hab mir gedacht ich poste einfach mal ein paar Anregungen

    1.PHP Schleifen in Html benutzen

    Schlecht
    PHP-Code:
    <?php 
    foreach($cars as  $car)
    {
    echo 
    '<p>'.$car.'</p>';
    }
    ?>
    Gut:
    PHP-Code:
    <?php foreach($cars as $car) :?>
    <p> <?php echo $car ?> </p>
    <?php endforeach ?>
    Die 2te Schreibweise erhöht in größeren Html Dokumenten extrem die Leserlichkeit zudem kann der Frontendler ohne große Probleme änderungen Vornehmen.
    Die Schreibweise funktioniert mit allen PHP Schleifen und Abfragen.
    Wichtig ist der : nach dem Schleifen/Abfragen-Kopf und dass anstadt mit geschweiften Klammern die Schleife/Abfrage mit <?php end+Name?> beendet wird

    Beispiel:
    PHP-Code:
    <?php if() :?>
    <?php 
    else :?>
    <?php 
    endif; ?>

    <?php while() :?>
    <?php 
    endwhile ?>

    <?php foreach() :?>
    <?php 
    endforeach?>
    etc.

    2. PHP im eigentlichen HTML Dokument minimieren


    Ein Beispiel hierfür wäre man möchte die Post Daten validieren.
    Oft sehe ich dann sowas hier ->

    PHP-Code:
    <?php
    $vorname  
    htmlspecialchars($_POST['vorname']);
    $zuname   htmlspecialchars($_POST['zuname']);

    mehr validation ...
    ...
    ...
    ...

    //Ausgabe
    echo '<p>'.$vorname.' '.$zuname.'</p>';
    ?>

    <form action="" method="post">
      <input name="vorname" type="text" size="30" maxlength="30" />
      <input name="zuname" type="text" size="30" maxlength="40"/>
    </form>
    Schöner wäre doch an dieser Stelle wenn man die Logik von der Ausgabe trennen würde.

    Als erstes die Html Datei:
    PHP-Code:
    <?php
    //Validator einbinden
    require_once 'validator.php';
    //Validator erstellen und Daten übergeben
    $validator = new validator($_POST);
    ?>

    <form action="" method="post">
      <input name="vorname" type="text" size="30" maxlength="30" />
      <input name="zuname" type="text" size="30" maxlength="40"/>
    </form>


    <?php //getData holt sich die Daten die validiert wurden 
    foreach($validator->getData() as $value) :?>
        <p> <?php echo $value?> </p>
    <?php endforeach; ?>
    Anstadt direkt im HTML Dokument die Daten zu validieren könnte man eine PHP Klasse erstellen die diese Aufgabe für uns übernimmt.
    Somit hätten wir sicher gestellt, dass Logik von Ausgabe getrennt ist (Ja ich weiß langsam nervt es ).
    Ich hab direkt nochmal das Beispiel von Oben mit den Schleifen angewendet


    Zum Verständnis nochmal der Validator
    PHP-Code:
    <?php 
    class validator
    {
    private 
    $data = array();
      public function 
    __construct($data){
        
    $this->validate($data);
      }
      
      public function 
    validate($data=null){
         if(
    $data== null) return false;    
         
         foreach(
    $data as $key=>$value)
         {
            
    $this->setData($keyhtmlspecialchars($value));
            
    // more validating
            //.... ;)
         
    }
         
         return 
    true;
      }  
      
      private function 
    setData($key$value)
      {
         
    $this->data[$key] = $value;
      }
      
      
      public function 
    getData()
      {
         return 
    $this->data;
      }
      
    }

    ?>
    Ich hoffe ich konnte wenigstens ein wenig verständlich machen worauf ich hinaus wollte. Kritik erwünscht

    P.S. Ich muss noch dazu erwähnen das ich den Code aus dem Kopf geschrieben hab und er eventuell Fehler enthält. :p

    gruß c4pone
    Zitat Zitat von Barney Stinson
    “Think of me like Yoda, but instead of being little and green I wear suits and I'm awesome. I'm your bro—I'm Broda!”

  2. #2
    print&lt;&gt;=~y/0-9//,$/ Avatar von 0x30
    Registriert seit
    01.02.2010
    Beiträge
    468

    Standard

    Für mich ist aber immer noch kein PHP von HTML trennen.
    Wenn dann arbeitet man mit Templates.
    Code:
    $_=<>;map$-+=$_,/./g;print$-,$/
    +0x60

  3. #3
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Ich würde zwar nie auf die Idee kommen ständing PHP-Tags auf- und zuzumachen (1. zu umständlich; 2. finde ich es so persönlich auch besser).

    Dennoch:
    Mir gefällt die Umsetzung des "Tutorials" (wenn man es so nennen möchte) und das ist definitiv etwas, was man sich auch mal durch den Kopf gehen lassen könnte.

    Insofern:
    /sticky

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  4. #4
    Edelgas Avatar von krypt0n
    Registriert seit
    31.03.2010
    Beiträge
    247

    Standard

    Dazu passt dann wohl auch eine Templatesprache wie Smarty. Finde ich persönlich um ein vielfaches praktischer als so ein Gebastle mit php Tags in den Templates.
    You've been krypt0nized!

  5. #5
    Neuling
    Registriert seit
    02.02.2010
    Beiträge
    1

    Daumen hoch AW: PHP und HTML trennen !

    kann auch Smarty nur Empfehlen!
    Es ist einfach verständlich, gut getrennt, bietet alle php-functions im template (teilweise mit verkürzer/vereinfachter implementierung)

  6. #6
    Trojaner
    Registriert seit
    10.11.2007
    Beiträge
    78

    Standard AW: PHP und HTML trennen !

    ich bin generell vom MVC-Ansatz sehr angetan:
    Model für die Datenbank
    View ist dir Ausgabe
    Controller die Datei, die eig. aufgerufen wird und alles koordiniert

  7. #7
    Anfänger
    Registriert seit
    04.12.2011
    Beiträge
    28

    Standard AW: PHP und HTML trennen !

    Ich dachte man sollte PHP nicht HTML benutzen, deswegen habe ich mir angewöhnt HTML in PHP zu benutzen bzw. alles in eine Variable nach und nach zu packen und am Ende ausgeben.
    Was ist den nun richtiger und besser?
    HTML in PHP oder PHP in HTML?

  8. #8
    Diskordianischer Papst Avatar von ReiDC0Re
    Registriert seit
    17.10.2011
    Beiträge
    224

    Standard AW: PHP und HTML trennen !

    weder noch


    Ich hasse Mods die Posts hunten:
    #Closed#
    #Verschoben nach#

    S3RB31: Ich war mal Pfadfinder, da mussten wir versteckte Pfade finden.
    ReiD: Ich bin auch ein Pfadfinder, ls -a.


  9. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    cby (16.02.2012), Raptor (17.02.2012), SFX (16.02.2012)

  10. #9
    Fortgeschrittener
    Registriert seit
    23.11.2010
    Beiträge
    47

    Standard AW: PHP und HTML trennen !

    Zitat Zitat von ReiDC0Re Beitrag anzeigen
    weder noch
    Warum weder noch?
    Ich finde wenn jemand so gelernt hat zu programieren soll er das doch auch so anwenden. Schlecht in dem Sinne ist es ja nicht.
    Es ist lediglich nicht ganz so übersichtlich.
    Von dem her finde ich spielt es auch keine Rolle ob PHP in HTML oder umgekehrt.

  11. #10
    W32.Lovgate
    Registriert seit
    22.10.2011
    Beiträge
    340

    Standard AW: PHP und HTML trennen !

    Würdest du in diesem Bereich arbeiten, dann würdest du nicht fragen wieso.
    Weil? Jemand ist für das Design zuständig und eine andere Person für den Code.

    Smarty.

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •