Art von OO in PHP / Programmierstil bei großen CMS / Frameworks

Original geschrieben von Christian Fein
Ja JDBC ähnelt ODBC ziemlich, nur mit dem Vorteil das JDBC Plattformunabhängig ist.

Die Installation erfordert natürlich einen Dedicated
Aber solange ich den Datencontainer über ADOdb abstrahiere, ist es ja "nur" der Geschwindigkeitsfaktor, bei dem JDBC PHP überlegen ist.

Original geschrieben von Christian Fein

Es kommt darauf an wie J2EE mit PHP kommunizieren will.
Wenn PHP letzendlich nur auf die in der Datenbank vorhandenen Datenzugreift und
die View ist, dann ist es relativ problemlos möglich.
Wenn der Servlet Container über ajp mit dem Apache verbunden ist, kann ein PHP Script SessionDaten und post bzw Get Daten auch direkt an ein Servlet weitergeben. Diese Konfiguration ist aber nicht so ganz ohne.

Original geschrieben von Christian Fein
Schwer. Ich würde mich eher fuer eine der Techniken entscheiden.

Wiedersprechen sich diese beiden Antworten nicht?
Wenn ich erst ein PHP System implementiere, und anschließend ein Mischsystem daraus mache, da sagst du erst, dass es funktioniert .. nur die Konfiguration ist nicht leicht.
Und dann dass es schwer ist .. und ich es lieber lassen sollte?

Oder versteh ich da jetzt nur was falsch?


Original geschrieben von Christian Fein

Wenn du PHP magst, versuch dich an der Servlet Programmierung.

Also wenn, dann sowieso Servlets, da ich nicht auf ein Windows-Server umziehen will!
Um die Servlets zu aktivieren muss das Tomcat Modul in den Apache geladen werden, und das wars?
So habe ich das jetzt jedenfalls rausgelesen.
Oder gibts da noch mehr Anforderungen an die Umgebung?

Original geschrieben von chibisuke
und wie gesagt, es geht bei der modularität vor allem darum das ganze komplett server unabhängig zu machen, wenn du nun auf sachen wie JDBC odert ADOdb zurück greifst, setzt du voraus das ein server entsprechende module rein kompiliert oder extern angebunden hatt

ADOdb ist eine DB engine komplett in PHP geschrieben.
Das ist in sofern unabhängig, dass auf jeden fall PHP in irgendeiner Form auf der Serverumgebung vorausgesetzt wird.
Und da man ja generell davon ausgehen kann, dass es nur noch wenige ( selbst shared hosting packages ) ohne PHP gibt, ist man kaum Servergebunden, bei ADOdb noch weniger als bei JDBC!

In welcher Sprache würdest du denn die DB abstrahieren?
 
Original geschrieben von Transmitter

Wiedersprechen sich diese beiden Antworten nicht?
Wenn ich erst ein PHP System implementiere, und anschließend ein Mischsystem daraus mache, da sagst du erst, dass es funktioniert .. nur die Konfiguration ist nicht leicht.
Und dann dass es schwer ist .. und ich es lieber lassen sollte?

Oder versteh ich da jetzt nur was falsch?

Nein, denn ich sage das es möglich ist Tomcat mit Apache zu verbinden. Aber es wird schwer seinen z.b einen Hoster zu finden (wenns denn kein root Server sein soll).
Ebenso bietet J2EE mit JSP eine PHP ablösende Variante.
Wenn PHP aber den Anforderrungen die du stellst gerecht wird, währe es auch nicht verkehrt
bei PHP pur zu bleiben.
Letztendlich sollte mann immer versuchen soviel komplexität wie möglich zu vermeiden. Denn Komplexität sind immer Fehlerquellen.
Ich habe hier ein berufliches Projekt das letztendlich mit Sun Solaris / Windows NT / PHP und ASP / Tomcat und Servlets (paar Dateien VBScript, paar JScript) über Samba Share zwischen dem
Sun und dem NT Server arbeitet.

Original geschrieben von Transmitter

Also wenn, dann sowieso Servlets, da ich nicht auf ein Windows-Server umziehen will!
Um die Servlets zu aktivieren muss das Tomcat Modul in den Apache geladen werden, und das wars?
So habe ich das jetzt jedenfalls rausgelesen.
Oder gibts da noch mehr Anforderungen an die Umgebung?

Ja eine Apache und eine Tomcate Installation ;)
http://www.jsp-develop.de/knowledgebase/view/2713/

Original geschrieben von Transmitter

ADOdb ist eine DB engine komplett in PHP geschrieben.
Das ist in sofern unabhängig, dass auf jeden fall PHP in irgendeiner Form auf der Serverumgebung vorausgesetzt wird.
Und da man ja generell davon ausgehen kann, dass es nur noch wenn deige ( selbst shared hosting packages ) ohne PHP gibt, ist man kaum Servergebunden, bei ADOdb noch weniger als bei JDBC!
In welcher Sprache würdest du denn die DB abstrahieren?

In der Sprache die ich nutze ;)
 
Original geschrieben von Christian Fein
Nein, denn ich sage das es möglich ist Tomcat mit Apache zu verbinden. Aber es wird schwer seinen z.b einen Hoster zu finden (wenns denn kein root Server sein soll).
Ebenso bietet J2EE mit JSP eine PHP ablösende Variante.

Soll es vorerst nicht, also wird es wohl erstmal ein reinrassiges PHP system werden.
Wenn das ganze groß genug wird ( Umsatz / Popularität ) dann werde ich mal weitersehen, ob ich in JSP / J2EE Richtung gehe.


Original geschrieben von Christian Fein

Ich habe hier ein berufliches Projekt das letztendlich mit Sun Solaris / Windows NT / PHP und ASP / Tomcat und Servlets (paar Dateien VBScript, paar JScript) über Samba Share zwischen dem
Sun und dem NT Server arbeitet.

hihi .. das zum Thema komplexität vermeiden.
Aber das geht leider nicht immer :( ( sonst könnte es aber auch jeder ;) )

Original geschrieben von Christian Fein
In der Sprache die ich nutze ;)

Logisch .. hatte aber auch nicht dich gemeint ;)
 
Original geschrieben von Transmitter

hihi .. das zum Thema komplexität vermeiden.
Aber das geht leider nicht immer :( ( sonst könnte es aber auch jeder ;) )
Richtig, ich bin ja nicht derjenige der das Verbrochen hat. Wir führen nur
änderrung an diesem bestehenden System durch.

<- arme sau :(
 
Jetzt muss ich aber schonmal fragen was deine Anwendung genau macht
beschrenkt sie sich hauptsächlich auf Datenbank querys?
wenn ja dannn würd ich php nutzen ist vom schreiben deutlich wenniger
Wenn du aber etwas schreiben willst was rechenintensiv ist z.b. Mathematisch usw... dann würde ich java dem vorzug geben!
das kann man sehen wie man will
z.b. http://www.x-verleih.de
nen projekt von mir in jsp geschrieben
das selbe könnte man natürlich auch in PHP schreiben und vermutlich wäre es auch dort schneller.
oder eben diese anwendung
http://www.cephei.com/tetralog/focusmoney/index.jsp
ebenfalls in jsp geschrieben mit dem unterschied das java hier besser ist
da hier massive zugriffe auf die Datenbank stattfinden habe ich mit java die möglichkeit einen Connection pooling zu benutzen was die datenbank geschichte schneller und dazu resourcen fairer gestaltet

ok und hier noch ein Beispiel das du unweigerlich nicht in Php realisieren kannst ;)
Bei american express gibt es einen Portfolio optimierer der berrechnet anhand von kursdaten die warscheinlichkeit wo du dein risiko usw.. sinken gleichzeitig dein Gewinn aber erhöhen kannst bei aktien..
allein die berrechnungen würden php schon killen ;D

aber ich sags mal so
wenn du hauptsächlich nur datenbank geschichten machst biste mit php gut bedient!
java brauchste da noch lange nicht benutzen ;)
 
Denke nicht, dass da komplexe Algorithmen reinkommen.

PHP sollte das alles können, bzw. muss das alles können.

Aber wie schon gesagt, mir steht vorerst nur ein Shared Hosting Paket zur verfügung, deswegen wird die erste Runde mit 1:0 für PHP ausgehen.

Ich gehe davon aus, dass ich halt einige DB Zugriffe habe, Template-system, diverse Module und evtl. Synchronisation mit Lokalen Systemen ( Das kann dann aber Java oder C++ übernehmen ) .. vom Funktionsumfang sollte es ca. bei der Komplexität von Typo3 oder eZpublish o.ä. liegen.


Was mir noch wichtig wäre, sind solche Sachen wie:

Wie kann ich ein PHP OO System performant halten?
( Referenzen auf Objekte returnen usw. )
Wie sind bei euch die Module gekapselt und / oder aufgebaut?
 
Zuletzt bearbeitet:
Original geschrieben von Christian Fein

$admin = new Administration();
$nav = new Navigation();
$admin->setNavigation($nav);
$admin->getNavigation()->change($newLinks);

Jetzt hab ich doch noch eine Frage dazu:

$admin->getNavigation()->change($newLinks);

Was machst du denn damit?
Zu welcher Klasse gehört denn dann change ( ) ?
Und wieso werden da 2 Methoden hintereinander aufgerufen, oder wie ist das? .. Hab ich irgendwie noch nicht gesehen sowas.
 
$admin->getNavigation()->change($newLinks);

Was machst du denn damit?
Zu welcher Klasse gehört denn dann change ( ) ?
Die change-Methode gehört dabei vermutlich zu der Navigation-Klasse. Das funktioniert auch problemlos, weil die Methode getNavigation Dir ja ein Navigation-Objekt zurückgibt, auf das Du direkt zugreifen kannst.
Die Anweisung
Code:
$admin->getNavigation()->change($newLinks);
ist im Grunde identisch mit dieser:
Code:
$navigation = $admin->getNavigation();
$navigation->change($newLinks);
Einziger Unterschied ist, dass man sich bei der ersten Variante in manchen Situationen einiges an Tipparbeit und überflüssigen Variablen sparen kann. :)

PS:
.NET ? Igitt, *kotz*..ich arbeite prinzipell nur mit apache..
Was ist mit mod_mono bzw. XSP? Damit läuft ASP.NET wunderbar auf meinem Linux-Rechner - ohne IIS.
Einzige Einschränkung ist nur die bekanntlich nicht vollständige Implementierung von Mono selbst, wobei ich bis jetzt noch nicht an diese Grenzen gestossen bin.
 
Also von jdbc scheinst du keine Ahnung zu haben. Denn jeder Servlet Container bietet dir JDBC Funktionalität. Um einen bestimmten Treiber zu nutzen brauchst du nichts weiter als das betreffende jar file in das web-inf/lib verzeichnis hochzuladen und per Class.forName() aufzurufen, das wars.
Mit "Module Reinkompilieren" hat das nichts zu tun. Ich empfehle dir das du dein "Wissen" mal auffrischest bevor du von etwas erzählst von dem du keine Ahnung hast.
"Extern angebunden" brauch hier rein gar nichts.

achja?
nur gut das das hier ein PHP forum ist, und PHP und und class dateien so viel miteinander zu tun haben ;-)
entsprechend wirst du auch mit Class.forName() nicht viel glück haben...

und wenn du Servlet benutzen willst... so wirst du wohl fast zwangsläufig n dedecated server brauchen, weil es gibt fast keine hoster die dir servlet erlauen...

und wenn ich so und so n dedecaed server hab, dann schlag ich mich net mit dem servlet zeugs rum sondern schreib meinen code gleich als CGI in C++, was so wie ich das sehe um einiges effizienter is als in java...

Was ist mit mod_mono bzw. XSP? Damit läuft ASP.NET wunderbar auf meinem Linux-Rechner - ohne IIS.

Tja... was mir an ASP missfällt? da fängs schon beim syntax an... ich kann erstmal diesen VB syntax schon nich leiden und dann auch noch tsags wie <% nein is nicht meine sache...
 
Zurück