PHP Tutorial | Erstellen einer Template Engine in PHP [Part 1]

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Heute zeige ich wie man mit einer Funktion HTML Code vom PHP Trennen kann. Im Video erstelle ich eine kleine Template Engine.
    ** Links zum Video **
    Mustache: mustache.github...
    Twig: twig.symfony.com
    Blade: laravel.com/do...
    Plates: platesphp.com/
    Code zum Video: gist.github.co...
    Weitere Themenvorschläge und/oder Kooperationen in die Kommentare.
    #PHP #TemplateEngine #HTML

Комментарии • 48

  • @VitalijMik
    @VitalijMik  5 лет назад

    Welche Template Engine benutzt du?

    • @Marco.Hochmuth
      @Marco.Hochmuth 5 лет назад +1

      Blade :)
      Haha, erst war ich voll getriggert, weil ich dachte, wie jetzt, PHP ist doch eine Template Engine 🤣
      Cooles Video geworden, Abo da gelassen!

    • @VitalijMik
      @VitalijMik  5 лет назад

      @@Marco.Hochmuth ha, ein laravel user. Ja streng genommen ist ja PHP da um HTML zu generieren (oder andere Datenformate) aber dennoch müssen wir Programm Logik von daratellungs Logik trennen. Nächsten Freitag wird es noch erweitert :D

    • @tunixgut2441
      @tunixgut2441 5 лет назад +1

      Ich sag mal "its depends" ;)
      Wenn ich mit Symfony arbeite dann natürlich Twig, mit TYPO3 wird natürlich Fluid benutzt. Die Standalone Versionen sind ja meistens sehr abgespeckt.

    • @VitalijMik
      @VitalijMik  5 лет назад

      @@tunixgut2441 Naja es gibt ja aber dennoch für sonstige Projekte eigene Favoriten, ich kenne viele die zum Beispiel auch Plates oder Twig installieren ohne jetzt Symfony direkt zu nutzen. Es gibt ja viele Packages die man installieren kann und sich sein eigenes Framework zusammenbauen kann.

    • @neoan
      @neoan 4 года назад +1

      @@Marco.Hochmuth nicht immer so schnell triggern lassen *g*
      Bezueglich RYO: was haltet ihr hiervon ruclips.net/video/5CqklbC2ZFM/видео.html ?

  • @HorstChristophSchreiber
    @HorstChristophSchreiber 3 года назад +3

    Wirklich ein hilfreiches Video, aber leider viel zu wenige "Daumen hoch"

    • @VitalijMik
      @VitalijMik  3 года назад

      Dankeschön für meine Verhältnisse hat es aber genügend Likes :D ich kann mich da nicht beschweren

  • @heinrichschiller4673
    @heinrichschiller4673 5 лет назад

    Toll! Es werden gute Gründe und Grundlagen vermittelt für den Einsatz einer Template-Engine vermittelt UND du erklärst auch warum du eine bestimmte Engine verwendest. Mustach werde ich ausprobieren. Auf Part 2 bin ich schon sehr gespannt. Abo! Молодец :)

    • @VitalijMik
      @VitalijMik  5 лет назад

      спосибо, part 2 ist schon hochgeladen um 8 Uhr wird es publiziert, gerne mal berichten wie die Erfahrung mit Mustache ist.

  • @push2me936
    @push2me936 2 года назад +1

    Top! Vielen Dank für dein Video!

  • @RealLexable
    @RealLexable 2 года назад +1

    Als wie wichtig erachtest du eigentlich Template Engines und Frameworks? Machen diese nicht eher erst ab einer gewissen Größenordnung und Komplexität einer Seite wirklich Sinn oder deiner Meinung auch schon vorher?

    • @VitalijMik
      @VitalijMik  2 года назад

      wenn man gerade am Anfang steht ist es wichtig, weil die Template Engine dich dazu zwingt EVA Prinzip einzuhalten. Wenn man schon erfahren ist, ist es nicht mehr so wichtig weil du weißt dass du keine Logiken in die Template einbauen musst.
      Heut zu tage baut man eh das Frontend mit VueJS oder Svelte auf so dass sich die Frage eh erübrigt und auhc nicht mehr so wichtig wird

  • @schallinterferenzrecords
    @schallinterferenzrecords 2 года назад +1

    Cooler Typ! Sehr gut erklärt.
    Ich benutze nativ PHP.
    Wie sieht es denn aus wenn ich noch bootstrap als CDN Link im header lade? Ich versuch seit geraumer Zeit meine Navbar und den Footer auszulagern in Templates. Aber wenn ich die Seite dann lade, funktioniert Bootstrap nicht.
    Wie löse ich das am besten?

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Dankeschön, also ich würde CDN nicht nutzen weil man ja rechtlich die Daten der Besucher nicht weitergeben darf ohne dass die vorher zustimmmen. Ich würde bootstrap lokal installieren statt CDN zu nutzen

    • @schallinterferenzrecords
      @schallinterferenzrecords 2 года назад +1

      ​@@VitalijMik Huch gut zu wissen! Cookie Compilance habe ich auf der Seite, aber dass die CDNs Daten weitergeben war mir nicht bekannt. Danke dafür :)

    • @VitalijMik
      @VitalijMik  2 года назад

      @@schallinterferenzrecords wenn du eine seite besuchst und von der seite weitere daten nachgeladen werden, ist es so als würde man von seinem browser diese seiten öffnen und die anbieter der CDNs sehen die zugriffe auf deren server

  • @Martin-xj8rp
    @Martin-xj8rp 3 года назад +1

    Wenn man sich ältere Videos wie diese hier anschaut, kann man eine deutliche Steigerung deiner Person sowie deiner Videoqualität entnehmen. DIe Entwicklung ist klar erkennbar. :D

    • @VitalijMik
      @VitalijMik  3 года назад

      Danken. Wäre ja schade wenn nach Zwei Jahren ich genauso wäre:D

  • @einsamerb
    @einsamerb 3 года назад +1

    Gut gemacht das Video und man merkt Dir an das Du Spaß dabei hast. Leider für anfänger zuviele Englische Begriffe die für mich Bhf sind.. Muss auch sagen bin durch die Suche zufällig auf dich aufmerksam geworden..👍👍👍👍

    • @VitalijMik
      @VitalijMik  3 года назад +1

      Die englischen Begriffe nutze ich weil man unter Google die meisten information dazu dann findet. Niemand sucht nach Schablone aber nach Templates. Ohne Englisch ist es auch schwierig mit der Programmierung voran zu kommen

  • @boothtml9069
    @boothtml9069 3 года назад +1

    👍

  • @jonathanmertens6762
    @jonathanmertens6762 3 года назад +1

    An sich ein gutes Video allerdings sagst du ja selber das man HTML von PHP trennen sollte daher würde ich eher mit str_replace arbeiten und zeichen bestimmen welche ich dann in meinen HTML code einsetze. Dann könnte man sich das mit ob auch sparen da man einfach file_get_contents() nutzen kann.

    • @VitalijMik
      @VitalijMik  3 года назад +2

      ich würde es nicht, file_get_contents speichert deinen kompletten HTML Code im internen Speicher von PHP, dann kommt str_replace und der druchsucht die Strings und ersetzt diese. Ich nutze mit ob_start und extract, einfache native PHP Funktionen und der code ist wesentlich performanter als file_get_contets. Wenn du mal einen großen HTML Code damit generierst, kann es durchaus passieren dass dir der Speicher überläuft.
      Mit HTML von PHP trennen ist einfach nur gemeint dass man vorher alle seine Variablen usw vorberietet und diese dann innerhalb vom HTML Code verteilt. Dass man auch eben EVA Prinzip einhält

  • @polyt0xX
    @polyt0xX 3 года назад +1

    Abonniert. ;-)

    • @VitalijMik
      @VitalijMik  3 года назад

      Willkommen:D und viel Spaß mit den Videos

  • @romandirks6290
    @romandirks6290 2 года назад

    Hey, wie schaffe ich es den html content ohne ' zu übernehmen? danke!! :)

    • @VitalijMik
      @VitalijMik  2 года назад

      Warum willst du es denn ohne übernehmen? Normalweise werden hochkommas mit Backslash escaped

    • @romandirks6290
      @romandirks6290 2 года назад

      @@VitalijMik Danke für deine Antwort. Ich habe ganz viele Unterseiten, die jeweils einen anderen HTML Text und Bilder aufweisen, aber ansonsten gleich sind, ähnlich wie ein Blog. Vielen Dank für einen Tipp, oder einen Link, wie ich das mit php umsetzen sollte.

    • @VitalijMik
      @VitalijMik  2 года назад

      @@romandirks6290 na wie im Video. Unten in der Beschreibung gibt es ein Link zum code

    • @romandirks6290
      @romandirks6290 2 года назад

      @@VitalijMik wendet man das Verfahren im Video tatsächlich auch auf ganze Texte an anstatt nur auf kurze Strings an? Wenn ja, wie kann ich einen HTML code übertragen, also mit , usw.

    • @VitalijMik
      @VitalijMik  2 года назад

      @@romandirks6290 ich verstehe die Frage nicht. Schau mal unter github.com/BlackScorp/shop/tree/master/templates da sind ja Beispiele drin

  • @tonisun4785
    @tonisun4785 2 года назад +1

    Hi süßer Maus❤🧡💛💚💙💜🤎🖤🤍main.tpl
    function escape(array $data):array{
    $new_data = [];
    foreach ($data as $key => $value)
    $new_data[$key] = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');

    return $new_data;
    }
    echo render($path, escape($data));

    • @VitalijMik
      @VitalijMik  2 года назад

      So einfach ist es nicht. Wenn du arrays in arrays hast geht es nicht. Da fehlt Rekursion. Außerdem gibt es Fälle wo man HTML nicht escapen will.

    • @tonisun4785
      @tonisun4785 2 года назад

      @@VitalijMik Rekursion ???? für zwei Felder ?😂🤣😂

    • @VitalijMik
      @VitalijMik  2 года назад +1

      Wenn value ein array ist musst value durch eacape auch durchjagen. Sonst stürzt der code ab

    • @VitalijMik
      @VitalijMik  2 года назад +1

      @@tonisun4785 If(is_array($value)) eacape($value) . Tippe vom Handy aber du weißt was ich meine

    • @tonisun4785
      @tonisun4785 2 года назад +1

      @@VitalijMik wenn man es richtig mag nicht !😜
      function escape( $data) {
      if (is_array($data)) {
      foreach ( $data as $key => $value ) {
      $data[htmlspecialchars($key)] = escape($value);
      }
      } else if (is_object($data)) {
      $values = get_class_vars(get_class($data));
      # var_dump($values);
      foreach ( $values as $key => $value ) {
      $data->{htmlspecialchars($key)} = escape($value);
      }
      } else {
      $data = htmlspecialchars($data);
      }
      return $data;
      }