Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Bösewicht

unregistriert

1

29.06.2017, 02:15

Vernünftig PHP/HTML kombinieren

Hallo,
auf dem Gebiet der dynamischen Webentwicklung bin ich noch ein ziemlicher Anfänger. Nun würde ich
allerdings gerne ein kleines Projekt in dem Bereich umsetzen. Das ganze möchte ich natürlich möglichst
sauber aufsetzen und weiß nicht so recht wo und wie ich da starten soll. Mittlerweile kenne ich mich
relativ gut mit diversen OOP-Sprachen aus, deshalb versuche ich natürlich erstmal einige Konzepte
zu übernehmen, was aber oftmals nicht in der gleichen Form möglich ist. Deshalb würde ich gerne um
ein paar Tipps und Tricks von erfahrenen Webentwicklern bitten.

Mein Projekt ist prinzipiell recht einfach gestrickt. Es handelt sich um ein kleines, übersichtliches
Verwaltungstool in Form einer Website. Am Frontend läuft Bootstrap, gepaart mit ein wenig CSS, JS
und HTML. Einstellungen, Datenverwaltung, dynamische Inhalte verwalte ich mit PHP.

Beispielsweise:
  • Wie verwalte ich am besten benutzerdefinierte Einstellungen? Über Konstanzen in einer config phpfile, über eine Map, Klasse, Als XML/INI?
  • Wie kombiniere ich mein HTML und PHP Code am besten. Z.B. nehmen wir an, ich möchte eine Dropdown Liste füllen. Rufe ich jetzt wirklich
    an der Stelle im HTML code über ein PHP Tag die entsprechende Funktion auf, die das dann mit einem "echo" auffüllt? Im Zweifelsfall habe
    ich dann einige php Tags im Code verteilt.
  • Macht es Sinn sich in eine Template-Engine einzuarbeiten wenn man auf diesem Gebiet mehr machen möchte(Smarty und co)?

Außerdem zum Code selbst:
  • Viel PHP Code ist einmalig, Beispielsweise das laden und Anzeigen einer Struktur. Wie verpacke ich die Funktionen dafür am besten?
    Einfach lose in einer Datei? Unter einem namespace? In einer eigenen Klasse?
  • Sollte ich Funktionen, die Daten sammeln und Funktionen, die diese Daten ausgeben separat verpacken? Ich rede hier von kleinen
    Dimensionen, nehmen wir obiges Beispiel der Dropdown Liste. Aus einer Datei/Datenbank lade ich meine Struktur, sollte ich diese dann
    ganz neutral, beispielsweise in Arrayform zwischenspeichern und wiederum andere Funktionen zum Anzeigen schreiben (die ich dann
    zwischen dem HTML Code aufrufe)?
  • Wie sieht das typische Errorhandling aus?

Für jede Hilfe, Tipps/Tricks rund um dieses Thema wäre ich sehr dankbar. Natürlich ist alles gerne willkommen, auch Links zu
kleinen Beispielprojekten in dem Bereich (vllt. auf Github) würde ich mir gerne angucken.

Liebe Grüße,
Alex

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

29.06.2017, 06:33

Datenbanken und MVC Bibliotheken.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

15.07.2017, 21:23


Wie verwalte ich am besten benutzerdefinierte Einstellungen? Über Konstanzen in einer config phpfile, über eine Map, Klasse, Als XML/INI?

Weder noch!
Sowas speichert man in einer (MySQL) Datenbank.


Wie kombiniere ich mein HTML und PHP Code am besten. Z.B. nehmen wir an, ich möchte eine Dropdown Liste füllen. Rufe ich jetzt wirklich
an der Stelle im HTML code über ein PHP Tag die entsprechende Funktion auf, die das dann mit einem "echo" auffüllt? Im Zweifelsfall habe
ich dann einige php Tags im Code verteilt.

Bloß nicht!
In eine PHP Datei gehört kein HTML und umgekehrt.
Man trennt immer Design vom Verhalten (Model-View-Controller, kurz MVC).
Dafür verwendest du am besten eine Template Engine.


Macht es Sinn sich in eine Template-Engine einzuarbeiten wenn man auf diesem Gebiet mehr machen möchte(Smarty und co)?

Definitiv!


Viel PHP Code ist einmalig, Beispielsweise das laden und Anzeigen einer Struktur. Wie verpacke ich die Funktionen dafür am besten?
Einfach lose in einer Datei? Unter einem namespace? In einer eigenen Klasse?

Keine Funktionen! Erstelle Klassen mit Methoden dafür.
Namespaces brauchst du nicht.
Pro Klasse erstellte du eine Datei. Wenn deine Klasse "MyClass" heißt, nennst du die Datei am besten "myclass.PHP".


Sollte ich Funktionen, die Daten sammeln und Funktionen, die diese Daten ausgeben separat verpacken? Ich rede hier von kleinen
Dimensionen, nehmen wir obiges Beispiel der Dropdown Liste. Aus einer Datei/Datenbank lade ich meine Struktur, sollte ich diese dann
ganz neutral, beispielsweise in Arrayform zwischenspeichern und wiederum andere Funktionen zum Anzeigen schreiben (die ich dann
zwischen dem HTML Code aufrufe)?

Hast du wirklich schon mit OOP gearbeitet?
Wenn nicht, schau es dir bitte an.
Eine Klasse hat eine Verantwortlichkeit. Wenn es z.B. eine Klasse Hund gibt, besitzt diese Methoden zum Essen (Input) und auch um Output zu liefern, z.B. bellen.
Konkret: Das Laden & Speichern der selben Struktur kann in die selbe Klasse, aber kein HTML Code dazu.


Wie sieht das typische Errorhandling aus?

Im besten Fall mit try-catch-Blöcken, wird allerdings meistens nicht so vorbildlich in PHP Scripten umgesetzt, manche geben Fehler einfach aus und brechen das Script mit exit ab.
Besser ist aber die Ausnahmebehandlung.
Indie Game-Dev Programmierer beim 2D MMORPG Pentaquin | Pentaquin Foren Vorstellung

4

21.07.2017, 16:30

Zitat

Bloß nicht!
In eine PHP Datei gehört kein HTML und umgekehrt.
Man trennt immer Design vom Verhalten (Model-View-Controller, kurz MVC).


Mal ein paar Wörtchen dazu, da viele Entwickler das nicht richtig verstehen:
In php direkt kein html: ok, ist i.d.R. schlechter Stil (es gibt Ausnahmen).
In html kein php? Unmöglich!
Wie baust du irgendeine Form von Dynamik ohne scriptsprache? Jedes template-System, welches serverseitig rendert, läuft durch den php-interpreter.
Nur weil das template-System den php-code in eine weitere, oft komplett sinnlose, Schicht abstrahiert, macht es unter der Haube nicht weiterhin php.
Schleifen, ifs etc, sind in dem FAll nicht Logik/Verhalten.

Logik, Datenhaltung und co trennen ist selbstverständlich sinnvoll. Technologien trennen nicht unbedingt.
Besonders im web ist das Vermischen von Technologien (html, css, javascript, php) vollkommen normal und in Zeiten von webapps auch gängige Praxis.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

21.07.2017, 16:43

Wie baust du irgendeine Form von Dynamik ohne scriptsprache?
Über Placeholder im HTML-Template. Du musst dafür jedenfalls kein PHP in deine HTML-Files knüppern.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

6

21.07.2017, 21:51

Oder noch besser PHP und eine Single Page Application mit JavaScript. 100% sauber getrennt und einfach über REST kommunizieren.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

21.07.2017, 22:09

Na ja, ich weiß nicht, ob ich JavaScript SPAs unbedingt als 'besser' bezeichnen würde. 'Anders' auf jeden Fall. Ich halte es aber nicht für sinnvoll jede beliebige Webseite über 'ne reine JavaScript-Sache abzufrühstücken.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

8

21.07.2017, 23:13

Klar, wenn der IE die Zielplattform ist natürlich nicht.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

9

22.07.2017, 06:14

So meinte ich das weniger. Ich denke einfach, dass der Overhead für kleinere Seiten einfach nicht gerechtfertigt ist.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Bösewicht

unregistriert

10

31.07.2017, 15:24

Vielen Dank erstmal für die Antworten!

Zitat

Hast du wirklich schon mit OOP gearbeitet?

Das frage ich mich manchmal auch. Klar sind mir Designpatterns inzwischen mehr als nur ein Begriff,
aber Webentwicklung ist für mich eine vollkommen neue Spate. Habe früher mal ein wenig was in HTML
und Javascript gebastelt, aber das ist auch schon lange her.

War erstmal total überfordert wie ich alles angehe und richtig trennen kann. Obs dafür überhaupt eine
Möglichkeit gibt (davon war ich überzeugt, der Begriff Template Engine war ja jetzt auch nicht völlig neu)

Aber BlueCobolds Beitrag hat trotz Sparsamkeit an Worten tatsächlich schon ausgereicht (danke dafür),
ich habe nachgeschaut, wie man MVC in PHP und HTML umsetzt, habe mich dann in Laravel und Blade
eingearbeitet und losgestartet. Momentan gucke ich mir noch AngularJS an und probier einfach mal ein
wenig rum :)

Werbeanzeige