PHP Dateien frei von HTML halten?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aufbau
beispiel
code
datei
datenbank
datum
design
designer
entwickler
kern
kunde
objekt
parameter
projekt
prototyp
team
url
vorteil
woche
zeile
-
Hallo liebe Com,
mich würde es interessieren, wie ihr mit eurem HTML Code in PHP umgeht. Ich persönlich finde es nicht schön meinen HTML Code teilweise über echo's auszugeben. Ein Dozent hat mir seine HTML Klasse gezeigt wie er mit den Seiten arbeitet, was meiner Meinung nach aber etwas zuviel drumherum war.
Gibt es eine Möglichkeit seine .php Datei rein Skript technisch zu gestalten? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich schließe PHP immer, wenn ich es nicht mehr brauche. (Geht auch, wenn ich mitten in z.B. einer if-Anweisung bin)
Beispiel:
<a href="#"><?php date("d"); ?></a>
-
Dann probier mal:
<?php PHP-Code... ?> HTML-Code <?php PHP-Code... ?>
Beitrag zuletzt geändert: 12.6.2014 18:44:34 von lukky776 -
lukky776 schrieb:
Dann probier mal:
<?php PHP-Code... ?> HTML-Code <?php PHP-Code... ?>
Auch das bezieht sich nur bedingt auf meine Frage. Die Frage war nämlich ob und wenn ja wie es möglich ist die .php Datei frei von jeglichem HTML-Code zu halten. -
<a href="#"><?php date("d"); ?></a>
<?php PHP-Code... ?> HTML-Code <?php PHP-Code... ?>
wird häufig verwendet.
Aber komplett frei geht nicht. -
lukky776 schrieb:
<a href="#"><?php date("d"); ?></a>
<?php PHP-Code... ?> HTML-Code <?php PHP-Code... ?>
wird häufig verwendet.
Aber komplett frei geht nicht.
Das es häufig verwendet wird ist mir bereits klar ;). Und ich bin mir zu 99,9% sicher das es komplett ohne geht, da ich es bereits gesehen habe, lediglich war dies eine unnütig komplizierte Version. -
Nicht eher anders rum? HTMl frei von PHP. Du könntest Funktionen z.B. mit einem Forumular aufrufen, damit hast du keinen PHP Code im HTML. Du kannst auch mit JavaScript per Ajax PHP Code laden. Aber beides ist eigentlich völliger Stuss.
Ich machs so wie lucky, php Tag schliessen, dann wird HTML auch richtig angezeigt und man braucht kein echo, das ist auch unschön. -
<?php $html = "<table>"; // dein html code eben, tabel/brs/überschriften, whatever $html .= "</table>"; echo $html; // html ausgeben, kennst du sowieso aber du bist nur im PHP - vll. meinst du ja sowas... ?>
Meine Antwort enthält der Code, siehe Kommentare
Den Sinn, bzw. was du damit bezwecken willst verstehe ich nicht.
Was du noch meinen könntest wäre ein MVC-Aufbau.
Beitrag zuletzt geändert: 12.6.2014 19:32:29 von master4860 -
In einem anderen Forum sind die empfehlungen von Frameworks ausgesprochen wurden z.B. Laravel. Also so genannte MVC Frameworks.
-
wie gesagt MVC, dann kennst du es doch sowieso schon - wieso fragst du dann?
-
Ich wusste es ja noch nicht :) ich habe den Thread im anderen Forum zur gleichen Zeit erstellt.
-
masterakio1995 schrieb:
Ich wusste es ja noch nicht :) ich habe den Thread im anderen Forum zur gleichen Zeit erstellt.
Gut, dann stellt sich die Frage was du entwickelst wo es so wichtig ist alles zu trennen? -
master4860 schrieb:
masterakio1995 schrieb:
Ich wusste es ja noch nicht :) ich habe den Thread im anderen Forum zur gleichen Zeit erstellt.
Gut, dann stellt sich die Frage was du entwickelst wo es so wichtig ist alles zu trennen?
Zunächst einmal startet morgen in der Ausbildungsstätte die Umsetzung eines Konzepts für ein Webbasiertes Spiel. Und um teilweise die Produktivität erhöhen zu können ist es wichtig das die HTML Entwickler die Layouts in Ruhe umsetzen können ohne von den PHP Entwicklern zurückgehalten zu werden und andersrum.
Und zum zweiten arbeite ich an einem Browsergame welches schon einen etwas größeren Umfang hat und somit zur unübersichtlichkeit zu neigen. Damit will ich preventiv Massnahmen treffen bevor ich nirgendswo mehr was finde. -
masterakio1995 schrieb:
Gibt es eine Möglichkeit seine .php Datei rein Skript technisch zu gestalten?
Ja: du erstellst erst deine HTML-Datei - dort, wo mit PHP etwas bewirken soll, setzt du Platzhalter wie "#header#" ein. Danach lässt du von PHP deine HTML-Datei laden und ersetzt die Platzhalter mit den entsprechenden PHP-Codes.
> Jetzt hast du eine HTML-Datei, die Platzhalter enthält und eine reine PHP-Datei, die die HTML-Datei verarbeitet.
> Es ist aber sinnvoller, ein Templatesystem zu nutzen, bei dem zwar PHP und HTML gemixt werden, aber in den Template-Dateien nur wenig PHP verwendet wird.
(Ich habe für mein CMS beide Varianten gemischt ...) -
Kann mir mal wer die Vorteile von MVC erklären?
Den einzigen den ich mir irgendwie vorstellen kann, wäre das der Aufbau wohl immer gleich ist und sich ein Entwickler (der mit MVC vertraut ist) sich besser zurecht findet.
Ich kann doch alles auch ohne MVC ordentlich strukturieren... Das man mit einem MVC-Modell mehr Performance kriegt, würde ich mal absolut nicht bestätigen. Im Grunde ja sogar weniger... . Vll. findet jemand ein paar schlagkräftige Vorteile. So simple ist das nämlich nicht, als das es irgendwie einfacher wäre oder so unglaublich übersichtlich wie man immer als erste Aussage hört.
Immer wieder hört man du willst professionell programmieren, dann nimm MVC ansonsten ist es eh nur Anfänger Zeug das niemand braucht (vll. ein wenig übertrieben).
1. Für mich ist MVC nichts anderes wie ein Hype, der immer wieder unnötig gepushed wurde
2. Ist es eine Einbahnstraße
Bei MVC muss ich für eine Änderung mindestens drei Baustellen (im Zweifel auch drei Files) beachten und/oder bearbeiten. Bei einfachen Funktionen/Klassen/Macros/etc., ohne MVC (gibt es dafür eine Hype-Bezeichnung?), ist es hingegen nur eine einzige Baustelle. Ich habe also schonmal mehr Arbeit, obwohl mir MVC eigentlich Arbeit einsparen sollte, oder etwa nicht?! Allein das spricht für mich schon gegen MVC.
Auf Grund dieser drei Baustellen ist es auch schwieriger als ohnehin schon sich in fremden Code einzuarbeiten, da man immer drei Dinge parallel betrachten muss. Das erschwert auch das Bugfixing.
Warum Einbahnstraße? Weil man zwar recht günstig von "einfachen Strukturen" zu MVC migrieren kann, aber nur sehr teuer zurück. Für mich ist MVC eben nur ein Hype, ging ja jahrzehntelang auch ohne MVC sehr gut!
Die besten Gründe, die ich bisher gehört habe, waren beispielsweise:
- Das macht man so, darum müssen wir das auch machen.
- Wenn man professionell programmieren möchte, dann macht man das so.
- Ohne MVC KANN man nichts mehr verwalten, keiner wird sich mehr zurecht finden.
Damn, das sind keine Gründe das sind Aussagen! Sind wir jetzt alle nur Mitläufer?
Wenn man für sein Projekt jedes Bild und jede Datei in den selben Ordner schmeißt, findet man halt nichts mehr. Da ist man aber doch selbst Schuld! Dann strukturiert es doch einfach mal mehr! Ein Ordner für js und da kommen die javascript-Angelegenheiten rein, etc. .
Wenn man dann bei Microsoft anfängt, hört man dann erstmal MVC vs MVP vs MVVC - was ist jetzt das beste?
Wieso einfach ohne MVC, etc. .
Ich kanns nicht verstehen...
Beitrag zuletzt geändert: 12.6.2014 20:59:58 von master4860 -
master4860 schrieb:
Kann mir mal wer die Vorteile von MVC erklären?
Den einzigen den ich mir irgendwie vorstellen kann, wäre das der Aufbau wohl immer gleich ist und sich ein Entwickler (der mit MVC vertraut ist) sich besser zurecht findet.
Ich kann doch alles auch ohne MVC ordentlich strukturieren... Das man mit einem MVC-Modell mehr Performance kriegt, würde ich mal absolut nicht bestätigen. Im Grunde ja sogar weniger... . Vll. findet jemand ein paar schlagkräftige Vorteile. So simple ist das nämlich nicht, als das es irgendwie einfacher wäre oder so unglaublich übersichtlich wie man immer als erste Aussage hört.
Durch das MVC ist soweit ich es bisher richtig verstanden habe auch von der Übertragbarkeit besser als manch andere Strukturen. -
masterakio1995 schrieb:
master4860 schrieb:
Kann mir mal wer die Vorteile von MVC erklären?
Den einzigen den ich mir irgendwie vorstellen kann, wäre das der Aufbau wohl immer gleich ist und sich ein Entwickler (der mit MVC vertraut ist) sich besser zurecht findet.
Ich kann doch alles auch ohne MVC ordentlich strukturieren... Das man mit einem MVC-Modell mehr Performance kriegt, würde ich mal absolut nicht bestätigen. Im Grunde ja sogar weniger... . Vll. findet jemand ein paar schlagkräftige Vorteile. So simple ist das nämlich nicht, als das es irgendwie einfacher wäre oder so unglaublich übersichtlich wie man immer als erste Aussage hört.
Durch das MVC ist soweit ich es bisher richtig verstanden habe auch von der Übertragbarkeit besser als manch andere Strukturen.
Was für eine Übertragbarkeit (ich habe übrigens meinen kleinen Beitrag noch ein wenig ergänzt, eventuell ein wenig überreagiert^^...) ?
Wohin willst du denn dein Projekt übertragen? -
Also, da hier keiner scheinbar weiß, was MVC ist und warum es gut sein soll, erklär ich es euch mal an einem kleinen praktischen Beispiel.
Wir haben ein Team:
Datenbankdesigner(MySQL)
Softwareentwickler(PHP)
Designer oder Frontent-Entwickler(HTML und CSS)
JS-Scripter/App-Entwickler(JavaScript + Frameworks)
Projektleiter
Und wir haben ein Kundenprojekt. Der Kunde möchte zum beispiel einen Webshop haben auf eine feste Produktpalette, die er selbst herstellt.
Und spätestens jetzt sollte man das Dilemma erkennen...
Der Projektleiter nimmt das Projekt, nachdem er die Anforderungen an die Software analysiert hat, stellt er seinen Projektplan auf. In diesem Projektplan muss er die vorhandenen Ressourcen(Mitarbeiter) entsprechend planen, um das Projekt zügigst und mit der effektivst möglichen Ressourcenauslastung durchzuführen.
So, während der PHP-Entwickler den Kern für den Webshop schreibt, kann der Datenbankentwickler die Datenbank entsprechend den Kundenanforderungen modellieren. Der Designer kann in Photoshop rummalen und Designs erstellen, die dem Kunden vorgestellt werden, um ihn entscheiden zu lassen, was er will. der JavaScript-"Entwickler" kann Basisfunktionen schreiben, die nachher nur noch entsprechend eingebunden werden, wie Clientseitige Eingabeverifizierungen, Authentifizierung und Validierungsfunktionen für Daten/Formulare.
soweit ist noch alles gut. nehmen wir an, der PHP-Entwickler hat den Kern fertig, die Datenbank ist modelliert, Design vom Kunden ausgewählt.
Jetzt muss der Shop entsprechend der erwarteten Funktionalität zusammengebaut werden.
Datenbank ist klar, der DB-Entwickler setzt seine Modellierung um, schreibt Prozeduren für den kontrollierten Zugriff und dokumentiert sie für den PHP Entwickler. Damit sind Daten von der Geschäftslogik getrennt. Der Designer schreibt sich entsprechend dem entworfenen Design seine HTML-Grundstruktur, styled die durch, baut einen Design-Prototypen(Design von Geschäftslogik getrennt). Der App-Entwickler schreibt weiter seine JavaScripts weiter, fängt aber schonmal an, mit dem Designer zu kommunizieren, bezüglich einbindepunkte des JavaScripts in das Design(gibt ja auch JS-funktionen, die man nur für das Design schreibt, wie ein/aus-Blenden von elementen, Slider, Fehleranzeige beim Greifen durch Clientseitige Eingabevalidierung.
Wär somit die 2. stufe, wir haben einen Kern, der an der datenbank hängt(am besten alle Datenbankeinträge als Objekte abgelegt, die den Aufbau der Datenbank wiederspiegeln, warum das so gemacht wird, erkläre ich später).
Und wir haben ein Design, was sich schonmal bewegt, also einen echten Design-Prototypen.
diese 2 elemente müssen jetzt zusammengeführt werden. Da gibt es 2 Möglichkeiten:
1. der PHP entwickler nimmt sich das Deign daher und Frickelt das rein. Designer ist Arbeitslos, Prozess dauert länger
2. Der PHP-Entwickler schreibt eine Art Template-Engine oder nimmt eine fertige(wie Smarty) und stimmt sich mit dem Designer ab, welche Parameter übergeben werden un d wie die Platzhalter aussehen. Beide können gleichzeitig dran arbeiten. Es ist etwas umständlicher, aber man spart effektiv Zeit bis zur Fertigstellung des Projektes.
In der Regel soltle man sich für Schritt 2 entscheiden. durch ein derart Striktes MVC kann man Ressourcen effektiver auslastne und Projekte schneller durchbringen. das wäre aber nur ein Vorteil, wenn man nicht alleine Arbeitet.
---------------------------------------------------------
so, jetzt ist etwas Zeit ins Land gegangen, das Team arbeitet bereits an einem anderen Projekt, der Kunde meldet sich wieder, will ein anderes Design.
Wenn wir in der 3. Stufe nach Methode 1 vorgegangen wären, würden wir jetzt PHP entwickler und designer/FrontEnd-entwickler beschäftigen, mit selbingem Zeitaufwand bei beiden, wie bei einer neuerstellung
Sind wir jedoch wie in schritt 2 vorgegangen, baut nur der Designer den neuen Design-prototypen, holt sich die Parameter und stellt das Neue Template rein, ohne eine php-datei anfassen zu müssen. Der zeitaufwand ist nur noch ein Bruchteil(Design könnte in 1 Arbeitstag komplett umgesetzt werden, während bei Methode 1 zB 1 woche vergeht, in der 2 Arbeitskräfte gebraucht werden, also 2 Arbeitswochen).
und bezüglich der Objektorientierten Classenerstellung für Datensätze:
Der Kunde kommt nochmal später wieder, will seine Produktpalette umstellen, braucht also Änderungen an der datenbank. Der datenbankentwickler designt neu, gibt die Änderungen an den Entwickler weiter, der passt seine Klassen entsprechend an und das läuft neu weiter. ohne Objekte dürfte der Entwickler den halben Shop umbauen, mit Objekten weiß er genau: anpassung der Objekte, neue Parameter an den Designer weitergeben, der baut die ins Template ein. Effektiv 2-3 Personentage für 3 Mitarbeiter.
Nach Italienischem Programmierprinzip(Spaghetti-Code) würde der DB-Entwickler den selben arbeitsaufwand haben, der Designer müsste die neuen daten ins Design einpflegen, könnte dann aber nix mehr machen und der PHP entwickler bräuchte eine Woche, die Änderungen Fehlerfrei in seine 50000 Code-Zeilen einzupflegen...(10 Personentage)
--------------------------------------------
Ich hoffe, ihr konntet das verstehen, was ich da versucht habe zu erklären. Vorteile von MVC schlagen nunmal gewaltig ein bei Teamarbeit und gravierenden nachträglichen Änderungen an einem Projekt ein. Wer jetzt das immer noch nciht einsieht, das MVC seine Berechtigung hat, sollte in dem Bereich nie beruflich tätig werden, zumindest nciht, wenn man im Team arbeiten will...
PS: Den App-Entwickler hab ich jetzt mal außen vor gelassen, sonst hätte ich hier noch Ajax, lazy loading, JSON etc erklären müssen, was dem Kern der Problematik abträglich ist...
Beitrag zuletzt geändert: 13.6.2014 10:05:58 von sebulon -
sebulon schrieb:
Also, da hier keiner scheinbar weiß, was MVC ist und warum es gut sein soll, erklär ich es euch mal an einem kleinen praktischen Beispiel.
Wir haben ein Team:
Datenbankdesigner(MySQL)
Softwareentwickler(PHP)
Designer oder Frontent-Entwickler(HTML und CSS)
JS-Scripter/App-Entwickler(JavaScript + Frameworks)
Projektleiter
Und wir haben ein Kundenprojekt. Der Kunde möchte zum beispiel einen Webshop haben auf eine feste Produktpalette, die er selbst herstellt.
Und spätestens jetzt sollte man das Dilemma erkennen...
Der Projektleiter nimmt das Projekt, nachdem er die Anforderungen an die Software analysiert hat, stellt er seinen Projektplan auf. In diesem Projektplan muss er die vorhandenen Ressourcen(Mitarbeiter) entsprechend planen, um das Projekt zügigst und mit der effektivst möglichen Ressourcenauslastung durchzuführen.
So, während der PHP-Entwickler den Kern für den Webshop schreibt, kann der Datenbankentwickler die Datenbank entsprechend den Kundenanforderungen modellieren. Der Designer kann in Photoshop rummalen und Designs erstellen, die dem Kunden vorgestellt werden, um ihn entscheiden zu lassen, was er will. der JavaScript-"Entwickler" kann Basisfunktionen schreiben, die nachher nur noch entsprechend eingebunden werden, wie Clientseitige Eingabeverifizierungen, Authentifizierung und Validierungsfunktionen für Daten/Formulare.
soweit ist noch alles gut. nehmen wir an, der PHP-Entwickler hat den Kern fertig, die Datenbank ist modelliert, Design vom Kunden ausgewählt.
Jetzt muss der Shop entsprechend der erwarteten Funktionalität zusammengebaut werden.
Datenbank ist klar, der DB-Entwickler setzt seine Modellierung um, schreibt Prozeduren für den kontrollierten Zugriff und dokumentiert sie für den PHP Entwickler. Damit sind Daten von der Geschäftslogik getrennt. Der Designer schreibt sich entsprechend dem entworfenen Design seine HTML-Grundstruktur, styled die durch, baut einen Design-Prototypen(Design von Geschäftslogik getrennt). Der App-Entwickler schreibt weiter seine JavaScripts weiter, fängt aber schonmal an, mit dem Designer zu kommunizieren, bezüglich einbindepunkte des JavaScripts in das Design(gibt ja auch JS-funktionen, die man nur für das Design schreibt, wie ein/aus-Blenden von elementen, Slider, Fehleranzeige beim Greifen durch Clientseitige Eingabevalidierung.
Wär somit die 2. stufe, wir haben einen Kern, der an der datenbank hängt(am besten alle Datenbankeinträge als Objekte abgelegt, die den Aufbau der Datenbank wiederspiegeln, warum das so gemacht wird, erkläre ich später).
Und wir haben ein Design, was sich schonmal bewegt, also einen echten Design-Prototypen.
diese 2 elemente müssen jetzt zusammengeführt werden. Da gibt es 2 Möglichkeiten:
1. der PHP entwickler nimmt sich das Deign daher und Frickelt das rein. Designer ist Arbeitslos, Prozess dauert länger
2. Der PHP-Entwickler schreibt eine Art Template-Engine oder nimmt eine fertige(wie Smarty) und stimmt sich mit dem Designer ab, welche Parameter übergeben werden un d wie die Platzhalter aussehen. Beide können gleichzeitig dran arbeiten. Es ist etwas umständlicher, aber man spart effektiv Zeit bis zur Fertigstellung des Projektes.
In der Regel soltle man sich für Schritt 2 entscheiden. durch ein derart Striktes MVC kann man Ressourcen effektiver auslastne und Projekte schneller durchbringen. das wäre aber nur ein Vorteil, wenn man nicht alleine Arbeitet.
---------------------------------------------------------
so, jetzt ist etwas Zeit ins Land gegangen, das Team arbeitet bereits an einem anderen Projekt, der Kunde meldet sich wieder, will ein anderes Design.
Wenn wir in der 3. Stufe nach Methode 1 vorgegangen wären, würden wir jetzt PHP entwickler und designer/FrontEnd-entwickler beschäftigen, mit selbingem Zeitaufwand bei beiden, wie bei einer neuerstellung
Sind wir jedoch wie in schritt 2 vorgegangen, baut nur der Designer den neuen Design-prototypen, holt sich die Parameter und stellt das Neue Template rein, ohne eine php-datei anfassen zu müssen. Der zeitaufwand ist nur noch ein Bruchteil(Design könnte in 1 Arbeitstag komplett umgesetzt werden, während bei Methode 1 zB 1 woche vergeht, in der 2 Arbeitskräfte gebraucht werden, also 2 Arbeitswochen).
und bezüglich der Objektorientierten Classenerstellung für Datensätze:
Der Kunde kommt nochmal später wieder, will seine Produktpalette umstellen, braucht also Änderungen an der datenbank. Der datenbankentwickler designt neu, gibt die Änderungen an den Entwickler weiter, der passt seine Klassen entsprechend an und das läuft neu weiter. ohne Objekte dürfte der Entwickler den halben Shop umbauen, mit Objekten weiß er genau: anpassung der Objekte, neue Parameter an den Designer weitergeben, der baut die ins Template ein. Effektiv 2-3 Personentage für 3 Mitarbeiter.
Nach Italienischem Programmierprinzip(Spaghetti-Code) würde der DB-Entwickler den selben arbeitsaufwand haben, der Designer müsste die neuen daten ins Design einpflegen, könnte dann aber nix mehr machen und der PHP entwickler bräuchte eine Woche, die Änderungen Fehlerfrei in seine 50000 Code-Zeilen einzupflegen...(10 Personentage)
--------------------------------------------
Ich hoffe, ihr konntet das verstehen, was ich da versucht habe zu erklären. Vorteile von MVC schlagen nunmal gewaltig ein bei Teamarbeit und gravierenden nachträglichen Änderungen an einem Projekt ein. Wer jetzt das immer noch nciht einsieht, das MVC seine Berechtigung hat, sollte in dem Bereich nie beruflich tätig werden, zumindest nciht, wenn man im Team arbeiten will...
PS: Den App-Entwickler hab ich jetzt mal außen vor gelassen, sonst hätte ich hier noch Ajax, lazy loading, JSON etc erklären müssen, was dem Kern der Problematik abträglich ist...
Vielen, vielen Dank! Um GENAU diese Teamarbeit ging es mir. Und auch danke an master4860 der andere Aspekte hineingebracht hat. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage