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

Поделиться
HTML-код
  • Опубликовано: 8 ноя 2024

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

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

    Welche Features findet ihr am wichtigsten bei einer Template Engine?

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

      Twig ist schon echt genial. Filter sind natürlich wichtig und auch die tolle Dokumentation ist richtig Klasse. Es gibt hier einfach alles was ich bisher so gebraucht habe. Da bin ich sehr zufrieden mit. Vielleicht habe ich deshalb auch kaum einen Blick auf andere Template Sprachen.

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

      @@NeverCodeAlone Ja, das einzige was mich an allen Template Engines stört, man kann nicht einfach PHP bult in gettext nutzen, Symfony und Co haben halt ihre eigenen Translator bundles. Aus den ganzen Open Source Projekten in C++ usw kenne ich halt den POEdit und obwohl ich den in PHP nutzen könnte, wird es wegen den Template Engines unterm Tisch gekehrt

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

      Was möchtest du denn damit umsetzen?

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

      Die Antwort ist bei mir unter "Wahrschienlicn Spam" geladet, habe gar nicht das Kommentar gesehen. Was ich damit machen will? Die Lücke zwischen Anfäger und Profi verkleinert. Mehr dann mit weiteren Videos

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

      Einfache Anzeige von Datenbankabfragen in einer Tabelle

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

    Einfach genial, dass man mit so wenig Code eine einfache aber zugleich effektive template engine bauen kann. Hast du auf jeden Fall, neben der guten Erklärung, gut hinbekommen.🤓
    Hatte mir früher schon öfters dieses Tutorial angeschaut und mich immer gefragt, warum man es braucht bzw. es für unnötig befunden. Jetzt wird mir aber klar, dass man die views erst ganz am Ende auf einmal rendern darf.😄

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

      Dankeschön, das tutorial ist aber nur die vereinfachte Form vom Templates, richtige Engines wie etwa Mustache/Twig/Blade habe noch viel mehr und bessere Features, diese solltest du dir vielleicht auch anschauen;)

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

      @@VitalijMik bin seit gestern echt am überlegen, was ich nutzen sollte. Das Ding ist, wenn ich mich jetzt für eine engine entscheide, darf ich erstmal für jedes Projekt 10-30 view files anpassen und dazu kommen dann noch die Controller. 😒
      Dein Beispiel ist zwar von der Funktionalität nicht so wie bei den richtigen engines, aber man behält immerhin die "" Notation bei. So müsste ich nicht jede "Logik" von der Syntax anpassen.
      Schaue mir aber alles nochmal in Ruhe an. Auf jeden Fall kann ich nach über einem Jahr immer noch von dir lernen, wofür ich dir sehr dankbar bin. :)

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

      @@alivesurvive471 wenn dir das mit der syntax wichtig ist schau dir platesphp.com/ an

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

      @@VitalijMik danke für den Tipp! Schaut auf den ersten Blick ganz vielversprechend aus.🙂

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

    Hallo Vitalij,
    Danke für die einfache und verständliche Erklärung für ein Template.

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

      Gerne doch und vielen Dank fürs Zuschauen :D

    • @steffenmuller5025
      @steffenmuller5025 4 года назад

      @@VitalijMik ich habe eine frage, da ich in keinem Keller oder abgedunkeltem Raum sitze, kannst du nicht einen weißen Hintergrund nehmen? Denn es ist doch schon etwas mühsam das zu Lesen, was Du schreibst. :)

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

      Sorry ich kann seit einigen Jahren nicht mehr weißen Hintergrund mit Schwarzer Schrift angucken, die Augen tränen bei mir sofort. wenn man das jahre lang 10-12 Stunden am Tag einen Hellen Bildschirm anguckt wird es anstrengend, Ich habe generell alles im Darkmode um meine Augen zu schützen. Auf Dauer ist es auch gesünder mit Darkmode zu arbeiten. Ich suche mal dazu einige Studien heraus und mache mal irgendwann ein Video dazu.

    • @steffenmuller5025
      @steffenmuller5025 4 года назад

      @@VitalijMik Ok habe ich wieder was dazu gelernt. :) Das wusste ich gar nicht. :))

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

    Ich habe endlich dein Video durchgearbeitet! Und ja, es funktioniert :) Nun muss ich mir Gedanken machen, wie ich das in meine Projekte einbauen kann. Bis jetzt habe immer nach deinem Part1 meine Views gebaut, das ich auch kenne. Part2 muss ich jetzt erstmal verdauen, aber ich denke es funktioniert nun so: Über render rufst du ein template auf, welches bestimmtes layout beinhaltet, zb: render('main2.php') mit dem Inhalt von layout2, layout('layout2.php'). Nur sections habe ich noch nicht verstanden... Aber tolles Video! Toll gemacht :)

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

      Moin, dankeschön. Also Sections sind Blöcke innerhalb vom Layout. Normalerweise gibt es eine Section mit body und header und scripts usw, das sind so die Typischen Sections. Je nach dem was für ein Layout man hat, können sich diese sections an unterschiedlichen Stellen befinden.
      Bezüglich in Projekt einbauen, einfach ein Ordner mit Templates anlegen, die Function includen und die Konstante Definieren wo sich die Templates befinden. Es werden noch weitere Tolle Videos kommen :D Versprochen

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

      Ich werde eh noch ein Projekt umsetzen mit allen bisherigen Videos, wo man dann sehen kann wie man es nutzen sollte

  • @nicolapietri
    @nicolapietri 5 лет назад +2

    Simple, clean and very useful... even if I don't speak german at all. Thanks.

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

      Thanks, one day i will provide subtitles, for sure

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

    Wirklich toll gemacht... Weil ich aber nicht so schlau bin muss ich alles 3 mal gucken um es zu verstehen - aber ich übe :D

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

      Dankeschön, vielleicht liegt es aber auch daran dass ich so schlecht erklären kann ;) ich übe auch

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

      @@VitalijMik Nein, du machst das echt 1A, aber sehr schnell. Das ist aber nicht schlimm, weil man ja alles mehrmals ansehen kann !

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

    Echt elegat der Programmierstiel
    Habe mich bisher mit einer strreplace() Variante vom Kindsection zur Muttersection durchgemogelt .
    Functioniert auch gut selbst als oop
    Weitere Viedeos zu den OB functionen würden mich intressieren;
    Da diese in meinem PHP7-Buch von Rheinwerk nicht behandelt wurden.
    Danke.

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

      Dankeschön, wahrscheinlich wird es im Buch nicht erwähnt weil du am Ende sowieso mit einem Framework arbeiten wirst und dieser hat eine Template Engine die genau das gleiche tut.

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

    Danke für das Video! Tipp: Bitte zoom den Text nicht so krass rein, ist anstrengend wenn man nah vorm Bildschirm sitzt.

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

      :D Mir hat einer gesagt, der Code war zu klein auf seinem Tablett :D Ich werde versuchen die passende Größe zu finden, nächstes Mal wird es etwas kleiner :D

  • @Douglas-Heffernan
    @Douglas-Heffernan 4 года назад

    Wieso hast Du eine so cool ausehende Fehlermeldung bei 4:40? Was muss ich tun, damit es bei mir auch so aussieht?

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

      Xdebug aktivieren. Zu xdebug habe ich ein Video

    • @Douglas-Heffernan
      @Douglas-Heffernan 4 года назад +1

      @@VitalijMik Du bist der Beste

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

      @@giuseppefortunino5106 над моим русским все смеяться будут :D

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

    Das Video ist echt cool geworden. Nutyt du auch OBS als Software? Ich nehme mich immer direkt beim Arbeiten auf. Ist es sonst nicht schwer zu koordinieren?

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

      Also ich nutze OBS um den Bildschirm aufzunehmen und daneben steht mein Smartphone auf einem Selfiestick den man aufstellen kann als Stativ. Beim Schneiden passe ich dann den Ton mit dem Bild an. Ich hätte auch lieber eine Mirrorless Kamera mit HDMI streaming Adapter damit ich alles im OBS hätte, das Geld bin ich aber noch nicht bereit zu investieren :D Ich habe da so ein Tipp, am Anfang des Videso wenn die Ton Aufnahme läuft und die Kamera läuft, einfach in die Hände Klatschen, in der Software sieht man dann im Video und Ton ein Spike und dann ist es easy Ton und Video zusammen zu führen :D

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

      Ja ich nehme zur Zeit noch beide Signale in OBS auf. Dabei habe ich das Problem, daß ich hier einen 32 Zoll Widescreen habe und die Auflösung nicht so gut für YT ist. Deshalb muß ich die Bildschirme synchronisieren. Dann sehe ich alles hier etwas unscharf. Das ist bei kurzen Videos ok, aber wenn es länger geht recht nervig. Ich hätte auch lieber OBS auf einem seperaten Screen laufen. Damit ich vielleicht auch mal die Szenen schalten kann.

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

      Ich habe noch eine Canon Blade 2. Die lässt sich aber nicht direkt als Video Quelle verbinden. Auf Windows geht das wohl über Wlan. Aber auf Fedora mit Linux gibt es die Software nicht. Wie schneidest du denn das Video? Mit Openshot?

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

      @@NeverCodeAlone Ja, das mit OBS und Widescreen kenne ich, beim Kauf nicht mal Ansatzweise an diesen Usecase gedacht, habe deshalb noch ein zweiten Monitor mit einfacher Auflösung

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

      @@NeverCodeAlone Naja du brauchst halt die Elgato Cam Link 4k das nutzen Streamer, das hat HDMI als input und USB 3.0 als output, damit wird das Video Signal der Kamera direkt an übertragen. Also im Grunde kann man dann da alles Anschließen was ein HDMI output hat

  • @Krischock1985
    @Krischock1985 Год назад +1

    Arbeitet man heut zu Tage immer noch mit einer Template Engine oder macht man das mehr mit der Datenbank?

    • @VitalijMik
      @VitalijMik  Год назад

      Template engine ist für die Ausgabe da, Datenbank ist dazu da um daten zu speichern. Man arbeitet mit einer Template engine wenn man mit PHP das Front End darstellen will. Wenn man headless arbeitet und das Front End zb nur mit JavaScript oder einer nativen APP entwickelt wurde, dann ist eine Template engine nicht notwendig. Die Datenbank aber schon

    • @Krischock1985
      @Krischock1985 Год назад

      @@VitalijMik Also man legt eine Template Engine php an ok. Ist es Sinnvoller wenn man ein neues Template macht also keine Engine sondern Layout für Front End den HTML Code in der Datenbank zusichern oder im Ordner? Gruß

    • @VitalijMik
      @VitalijMik  Год назад

      @@Krischock1985 im Ordner als Datei ist es am Sinnvollsten.
      PHP spricht ja mit der Datenbank über das Netzwerk. Du baust ja eine Verbindung zu der Datenbank auf. Je nach dem wo du hostest kann dein Code und dein Datenbank Server auf unterschiedlichen Servern liegen und die Übertragung könnte einige Milisekunden dauern. Für so grundlegenden Dinge wie etwa HTML Code, wäre das schlecht.
      Wenn der Code und die Templates auf der gleichen Platte liegen hast du da natürliche bessere Performance. Außerdem kannst du die Templates in einen Version Control System wie etwa git einpflegen.

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

    4:24 Sollte es nicht "function layout(𝙨𝙩𝙧𝙞𝙣𝙜 $path = null) {" heißen?

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

      Ja wäre natürlich besser

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

    Was bedeutet hier, in prozeduraler Programmierung, das Schlüsselwort "static"? Bzw. was bedeutet es in OOP? Gibt es hierbei 1 Unterschied?

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

      Moin, also "static" bedeutet dass diese Variable in allen Funktionen statisch vorliegt. Static ist sowas wie global, einfach gesagt. Nur dass du es nicht von außerhalb von Funktonen bearbeiten kannst.
      Normalerweise definierst du ja eine Variable in einer Funktion und bei jedem Aufruf wird diese Variable auf ihren ersten Wert zurückgesetzt weil sie neu in der Funktion initialisiert wird.
      Wenn du die Variable statisch definierst, wird sie nicht neu initialisiert sondern behält den Wert aus dem Vorherigen aufruf.
      In OOP und PHP Gibt es keinen unterschied. Mehr noch. viele die mit OOP Anfangen, definieren alle ihre Methoden als statisch und haben somit prozedurale Programmierung mit Klassen umgesetzt. Weil sie weiterhin ihre Funktionen aufrufen.

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

    danke für die Template.php aber layout.php fehlt ganz und auch die änderungen an den anderen Files hast du nicht aufs git gelegt. ein wenig schade.

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

      Schau hier github.com/BlackScorp/funci ich habe mehrere Videos gemacht und einzelteile aus den Videos zum Späteren Zeitpunkt in ein Projekt zusammengefasst. Da ist das Login und Registrierungsscript und Composer video und Events video mit drin. Alles ist da

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

      @@VitalijMik vielen dank!

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

      @@openBSDguru Gerne, auf meinem Kanal muss niemand den code abtippen ;) wenn der code nicht da ist dann habe ich einfach nur geschlammt

  • @TeX1
    @TeX1 4 года назад

    Wozu son Aufriss? Setze im HTML-Code einfach Schlüsselwörter und ersetze diese mit Werten die aus anderen HTML oder PHP-Datenen kommen. Z.B. würde man im HTML {key} schreiben und mit preg_replace diesen mit anderen Daten ersetzen (z.B. $array['key']). Das sind evtl. 3-4 Zeilen PHP-Code, mehr braucht man nicht. Deine "Engine" sollte man auch ala OOP schreiben (prozedurale Programmierung wird immer seltener weil es viele einfacher haben möchten ;-) ).

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

      Der "Aufriss" ist dazu da um die Entwickler auf die Arbeit mit Profi Werkzeugen vorzubereiten. Wenn du dir Template Engines wie etwa Twig oder Blade anschaust haben die auch Template Vererbung und Layouts, es ist ein sehr wichtiges Thema.
      Das Ziel des Tutorials ist es einem Anfänger zu zeigen, dass er erstens HTML von PHP Trennen sollte, zweitens dass er am Besten einen "Data" Array hat wo er die Variablen zusammensetzt und drittens diese Variablen im Template verteilen sollte.
      Es ist mit ABISCHT in Funktionaler Programmierung geschrieben damit man einen leichteren Einstieg findet ohne OOP vorher kennen zu müssen.
      Ich möchte dass jemand der sich diese Tutorialserie mit Funci verinnerlicht hat, danach relativ einfach auf ein Framework wie etwa Symfony und co umsteigen kann.
      Du glaubst doch nicht echt dass ich nach fast 10 Jahren Berufserfahrung und 3 Jahren Ausbildung on Top hier eine Template Engine Programmiere und zeige dass jeder die unbedingt einsetzen muss? Um etwas zu erklären muss man es vereinfacht nachbauen, und das habe ich hier gemacht ;)

    • @TeX1
      @TeX1 4 года назад

      @@VitalijMik - Wie man HTML und PHP verbindet gehört zum Grundwissen und da brauch man kein "Profiwerkzeug" (PHP wurde dafür entworfen), sowas macht man später nebenbei weil man eh an den Punkt kommt. Jedenfalls hab ich solche Sachen die letzen 20 jahre nicht gebraucht und werde das auch nie brauchen (sofern es sich nur um HTML handelt). Leuten gleich einen Weg ("Profiwerkzeug" ^^) vorzubereiten ist nunmal der falsche Weg, richtig wäre Ihnen die Unterschiede zu erklären und die Wahl zu überlassen.
      Was passiert z.B. wenn man in einem Ajax-Request JS ausführen muss aber die Template-Engine das nicht kann? Umsteigen und alles auf Anfang? Dann lieber selbst die benötigten Sachen entwerfen, diese dann notfalls anpassen / erweitern und fertig.
      OOP wurde entworfen um es den Entwicklern leichter zu machen (Struktur / Sicherheit etc.). Sie möchten das Template-Engines genutzt werden um es "einfacher" zu gestalten, setzen aber lieber prozedurale Programmierung ein um den Umstieg später schwieriger zu machen? Check ich nicht, sry.
      Aber naja, die einen brauchen OOP, andere Template-Engines, andere xdebug, andere bunte Editoren, so is datt halt. Wieso nicht HTML lernen, später mithilfe von PHP HTML manipulieren und damit kann man alles selbst gestalten was so im Inet möglich ist (Sachen wie JS, Ajax etc., die ebenfalls von PHP manipuliert werden können, kommen dann später hinzu).

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

      @@TeX1 alles klar, ich sehe es schon wohin es geht.
      Jeder hat seine Ansichtsweise und jeder kann diese vertreten. Und genau das mach ich auf meinem Kanal ;)

  • @diabolaw-legal
    @diabolaw-legal 3 года назад

    Hey, kannst du in nem Video kurz anschneiden, wie man doppelte Suchergebnisse vermeidet?
    Ich habe eine Suchzeile mit nem Template kombiniert. Jetzt gibt er mir im User Card Template im Aufbau von 4 Cards pro Reihe, jede Reihe die selben Ergebnisse aus. Ich möchte aber, dass die Ergebnisse nur einmal erscheinen.
    Ziel wäre ein Europol Klon: eumostwanted.eu/de
    Als Ausgangspunkt.

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

      deine Doppelten Ergebnisse kommen bestimmt aus deiner SQL Anweisung, das passiert oft wenn man ein JOIN Befehl drin. Du könntest beim auslesen der Daten ein eindeutiges array zusammenbauen, es gibt in php die funktion array_unique allerdings wird es nicht performant sein. Ich mache das meistens
      while($row = $statment->fetch()){
      $result[$row->id] = $row;
      }
      damit wird dann der Eintrag mit der gleichen ID einfach jedes Mal überschrieben

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

    In deiner main.php schreibst du PHP und HTML Code zusammen in eine Datei. Eine Template-Engine ist doch gerade dafür gedacht, dass man PHP und HTML Code strikt von einander trennt.
    In meiner Template-Engine findet sich kein PHP Code in Template-Dateien (Ausgabe bzw. HTML) und umgekehrt.

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

      Der Sinn einer Template Engine ist es Logik von der Darstellung zu trennen. Du kannst mit PHP dieses wunderbar tun, wenn man sich an die Regeln hält und das EVA Prinzip umsetzt.
      Da allerdings es sehr oft so war dass Entwickler mit PHP auch Logik im HTML eingebaut haben(SQL Abfragen zwischen HTML Inhalt) und damit dann EVA nicht eingehalten haben, hat man sich überlegt statt PHP eine Pseudosprache einzusetzen, diese ist dann natürlich limitiert damit man nicht auf dumme Gedanken kommt.
      Deshalb gibt es heute Twig und Blade und Mustache.

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

      @@VitalijMik hab vor ein paar Tagen überlegt, ein Video für dich von meiner Template-Engine zu machen. Dann könnten wir uns über den Inhalt austauschen.

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

      @@espoleon_ Es gibt halt so viele Template Engines die schon so gut sind, Blade/Twig/Mustache/Plates dass man eigentlich gar kein Grund hat irgend eine andere Template engine zu verwenden.
      Blade hat den Vorteil es ist in Laravel eingebaut.
      Twig hat den Vorteil es ist in Symfony eingebaut.
      Sprich wenn man diese Frameworks verwendet ist es eh schwierig was anderes zu benutzen.
      Mustache hat den Vorteil dass du ein Template hast und kannst sowohl mit Javascript als auch mit PHP oder auch mit Python das Template wiederverwenden. Die Template Engine lässt sich von fast allen Programmiersprachen rendern.
      Plates hat den Vorteil dass es komplett in PHP Geschrieben und es hat eine sehr hohe Test Abdeckung und sehr gute Dokumentation außerdem folgt es strickt den PSR-Regeln.
      Ist halt die Frage ob man wirklich da die Zeit investieren will und sich mit diesen Template Engines konkurrieren möchte oder doch lieber eins davon nimmt und dann seine Apps programmiert ;)

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

      @@VitalijMik ja das stimmt, dass es sehr viele Template-Engines gibt. Mir ist bei einer Analyse von Dateianzahl und Größe aufgefallen, dass die fertigen Template-Engines einfach zu groß sind und unnötig viele Dateien haben. Unabhängig vom "tollen" MVC-Modell, verwendet meine Template-Engine wirklich nur 1 einzige Datei und funktioniert so einfach wie möglich. Das muss nicht zwangsweise schlecht sein.

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

      @@espoleon_ Aber dann ist deine Template Engine entweder nicht fertig, oder die verstößt gegen die SOLID Prinzipien, vor allem Single Responsibility Prinziple, und das kann auch nicht richtig sein.

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

    Habe alles 1zu1 nachgemacht, dennoch bekomme ich Fehler....auch der Code ist zu 100 % gleich.

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

      Las mich mal in meine Glaskugel reinschauen und herausfinden wie dein Fehler lautet, es kann ja nur eins geben :D
      In der Beschreibung ist übrigens der Code auch direkt verlinkt, du kannst es mit Copy und Paste einfach einfügen ;)

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

      @@VitalijMik .... :(
      Die Glaskugel hatte recht... ;)
      Würde aber gerne an dieser Stelle mal einen Wunsch äußern.
      Kannst du mal ein Tut machen über ein minimales Browsergame mit Php/mysql JavaScript....PDO, OOP und leicht zu erweitern;)
      Son Standardding...Gebäude bauen...man drückt z.B. auf einen Button bauen....Daten kommen dabei aus DB...also Bauzeit etc.....es läuft ein Countdown ab bis Gebäude fertiggestellt und lvl 2 erreicht usw....nächsten countdown lvl 3.
      Baukosten .... und Erträge von einen Gebäude...vielleicht sogar eine kleine neue TutorialReihe....das wäre mal super klasse...

  • @adsboonyadol
    @adsboonyadol 4 года назад

    i wait to be contine (Part 3) how to add css & js foreach in the page ;( i noob eng.

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

      Hi, you can use simple PHP loops.
      github.com/BlackScorp/funci/blob/master/templates/partials/accountFlashMessage.php#L5
      and CSS you can add in the header github.com/BlackScorp/funci/blob/master/templates/layouts/default.php#L7
      JS at the bottom of the page
      github.com/BlackScorp/funci/blob/master/templates/layouts/default.php#L25

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

      @@VitalijMik Thank you so much , for learn.