Hallo zusammen,
in meiner Freizeit habe ich schon einige Projekte in PHP erstellt, auch ein komplettes Portal + Forum usw.
Nach 2005 habe ich viel in C# programmiert und so auch ein wenig das OOP lieben gelernt. Ich versuche momentan mich ein wenig in moderner PHP Entwicklung schlau zu machen.
In meiner jetzigen Arbeitsstelle bin ich als Entwickler für das Intranet tätig, welches aus einem zugegeben uralten Framework (seit 1998 entwickelt) besteht.
Ich kann von Glück sagen, dass irgendwann zumindest auf PHP4 umgesattelt wurde, aber der Code an sich ist doch schon relativ veraltet.
Mich interessiert es jetzt wie man eurer Meinung nach heutzutage ein modernes Framework für eine Intranet Umgebung in einer Firma entwickeln würde. Ich versuche meinerseits immer modern zu entwickeln und weiß auch, dass ich das Firmenintranet wohl nie komplett umschmeißen kann und darf, aber dennoch möchte ich nicht dumm sterben und mich immer schön weiterbilden.
Ich habe mich in das MVC Modell eingelesen und mir überlegt wie man soetwas in PHP umsetzen würde.
Kurzbeschreibung des unteren Textes:
Wie würdet Ihr, eurer Meinung nach, ein modernes Framework aufbauen, welches mehreren Entwicklern die Möglichkeit zur Entwicklung von einem Intranet bieten würde?
Ich erläutere mal, warum ich das für ein Intranet nicht so simpel empfinde, wie evtl. für ein Blog o.ä.:
Ich habe mitbekommen, dass der Controller ja zuständig wäre für die Interaktion mit dem Benutzer (also z.B. eine eintragen.php).
Der Viewer wäre ja bei PHP der geläufigen Meinung nach das Template.
Jetzt das Modell. Oft wird als Beispiel ein Blogpost genommen. Man hätte also ein Model namens Blog (bzw. blogPost o.ä.), welches dann Methoden wie insertPost() o.ä. hätte.
Ich könnte also zum jetzigen Zeitpunkt wohl einen MVC Konformen Blog erstellen.
Aber:
Wie würde man jetzt für eine Firma (oder auch für das Blog selber von mir aus) einen Report nach dem MVC Modell erstellen?
Eine simple Auswertung nach von mir aus Einträgen und Benutzerkommentaren o.ä..
Gut, als Template (Viewer) würde man also das Aussehen des Reports definieren.
Der Controller würde wohl eine Filtermöglichkeit geben (nach Zeitraum z.B.).
Jetzt die Preisfrage: Wie würde da ein Model aussehen?
Extra ein Model pro Report? Mit Methoden wie display() und prepare()? Dazu einer Variable namens $query, welche dann die komplexe Datenbankabfrage in ein Array speichert?
Eine Methode display() wäre ja meiner Ansicht nach Quatsch, da das ja über das Template laufen muss.
Also müsste man im Template auf das Datenarray des Models zugreifen und im Template die ganze Logik verankern (wenn Minusbetrag, dann Rot, wenn X und Y dann evtl. Daten von wo anders herausziehen)
Aber für was dann der ganze Aufwand? Wenn schon ohnehin Logik im Template vorhanden ist, für was dann ein Template?
Irgendwie habe ich da einen kleinen Hirnknoten...
Mal angenommen man erstellt im Laufe der Zeit unter verschiedenen Entwicklern 60-100 Reports.
Muss jetzt jeder Entwickler pro Report einmal ein Template erstellen, dann ein Modell zu seinem Report (nach Schema F, also prepare() und display()?)
Dazu noch eine Controller Page und das wars?
Bisher habe ich einen Ordner namens Report<nummer> und darin eine Filter.php und Main.php.
Worin ist dann die Verbesserung? (Außer, dass nun 3 statt 2 PHP Files erstellt werden müssen)
Andere Gedanken zur modernen Entwicklung:
In dem jetzigen Framework gibt es eine Funktion namens text().
Jegliche Ausgabe wird über diese Funktion ausgeführt. Die Funktion text() sucht, falls eine andere Sprache als Deutsch eingestellt ist, nach einer möglichen Übersetzung und gibt dann für die einzelnen text-Bausteine die Übersetzung aus.
Wenn ich nun mit Templates arbeite ist da ja nicht mehr möglich.
Momentan kann ein User (mit einer entsprechenden Rolle) frei wählbar den "Translate" Button drücken und einen dieser text() Aufrufe übersetzen. In der DB wird die Translation dazu gespeichert und dann wird beim nächsten Aufruf der übersetzte Text angezeigt. Klingt langsam und unperformant, aber funktioniert erstaunlicherweise seit Jahren wunderbar.
Wie würde man sowas MVC konform entwickeln? Jeglicher Text im Template müsste dann ja irgendwie dynamisch werden? Ich habe dazu irgendwie gar keine Idee.
Vielleicht hat mir jemand auch ein wenig Literatur dazu, das würde mir schon ungemein helfen.
Gruß
-Thomas
in meiner Freizeit habe ich schon einige Projekte in PHP erstellt, auch ein komplettes Portal + Forum usw.
Nach 2005 habe ich viel in C# programmiert und so auch ein wenig das OOP lieben gelernt. Ich versuche momentan mich ein wenig in moderner PHP Entwicklung schlau zu machen.
In meiner jetzigen Arbeitsstelle bin ich als Entwickler für das Intranet tätig, welches aus einem zugegeben uralten Framework (seit 1998 entwickelt) besteht.
Ich kann von Glück sagen, dass irgendwann zumindest auf PHP4 umgesattelt wurde, aber der Code an sich ist doch schon relativ veraltet.
Mich interessiert es jetzt wie man eurer Meinung nach heutzutage ein modernes Framework für eine Intranet Umgebung in einer Firma entwickeln würde. Ich versuche meinerseits immer modern zu entwickeln und weiß auch, dass ich das Firmenintranet wohl nie komplett umschmeißen kann und darf, aber dennoch möchte ich nicht dumm sterben und mich immer schön weiterbilden.
Ich habe mich in das MVC Modell eingelesen und mir überlegt wie man soetwas in PHP umsetzen würde.
Kurzbeschreibung des unteren Textes:
Wie würdet Ihr, eurer Meinung nach, ein modernes Framework aufbauen, welches mehreren Entwicklern die Möglichkeit zur Entwicklung von einem Intranet bieten würde?
Ich erläutere mal, warum ich das für ein Intranet nicht so simpel empfinde, wie evtl. für ein Blog o.ä.:
Ich habe mitbekommen, dass der Controller ja zuständig wäre für die Interaktion mit dem Benutzer (also z.B. eine eintragen.php).
Der Viewer wäre ja bei PHP der geläufigen Meinung nach das Template.
Jetzt das Modell. Oft wird als Beispiel ein Blogpost genommen. Man hätte also ein Model namens Blog (bzw. blogPost o.ä.), welches dann Methoden wie insertPost() o.ä. hätte.
Ich könnte also zum jetzigen Zeitpunkt wohl einen MVC Konformen Blog erstellen.
Aber:
Wie würde man jetzt für eine Firma (oder auch für das Blog selber von mir aus) einen Report nach dem MVC Modell erstellen?
Eine simple Auswertung nach von mir aus Einträgen und Benutzerkommentaren o.ä..
Gut, als Template (Viewer) würde man also das Aussehen des Reports definieren.
Der Controller würde wohl eine Filtermöglichkeit geben (nach Zeitraum z.B.).
Jetzt die Preisfrage: Wie würde da ein Model aussehen?
Extra ein Model pro Report? Mit Methoden wie display() und prepare()? Dazu einer Variable namens $query, welche dann die komplexe Datenbankabfrage in ein Array speichert?
Eine Methode display() wäre ja meiner Ansicht nach Quatsch, da das ja über das Template laufen muss.
Also müsste man im Template auf das Datenarray des Models zugreifen und im Template die ganze Logik verankern (wenn Minusbetrag, dann Rot, wenn X und Y dann evtl. Daten von wo anders herausziehen)
Aber für was dann der ganze Aufwand? Wenn schon ohnehin Logik im Template vorhanden ist, für was dann ein Template?
Irgendwie habe ich da einen kleinen Hirnknoten...
Mal angenommen man erstellt im Laufe der Zeit unter verschiedenen Entwicklern 60-100 Reports.
Muss jetzt jeder Entwickler pro Report einmal ein Template erstellen, dann ein Modell zu seinem Report (nach Schema F, also prepare() und display()?)
Dazu noch eine Controller Page und das wars?
Bisher habe ich einen Ordner namens Report<nummer> und darin eine Filter.php und Main.php.
Worin ist dann die Verbesserung? (Außer, dass nun 3 statt 2 PHP Files erstellt werden müssen)
Andere Gedanken zur modernen Entwicklung:
In dem jetzigen Framework gibt es eine Funktion namens text().
Jegliche Ausgabe wird über diese Funktion ausgeführt. Die Funktion text() sucht, falls eine andere Sprache als Deutsch eingestellt ist, nach einer möglichen Übersetzung und gibt dann für die einzelnen text-Bausteine die Übersetzung aus.
Wenn ich nun mit Templates arbeite ist da ja nicht mehr möglich.
Momentan kann ein User (mit einer entsprechenden Rolle) frei wählbar den "Translate" Button drücken und einen dieser text() Aufrufe übersetzen. In der DB wird die Translation dazu gespeichert und dann wird beim nächsten Aufruf der übersetzte Text angezeigt. Klingt langsam und unperformant, aber funktioniert erstaunlicherweise seit Jahren wunderbar.
Wie würde man sowas MVC konform entwickeln? Jeglicher Text im Template müsste dann ja irgendwie dynamisch werden? Ich habe dazu irgendwie gar keine Idee.
Vielleicht hat mir jemand auch ein wenig Literatur dazu, das würde mir schon ungemein helfen.
Gruß
-Thomas