Wer arbeitet mit PHP5 und MySQL >=4 bzw. InnoDB?

Josh

Legendäres Mitglied
Hi alle

Nachdem ich meine 2-Jahres-Informatikerlehre letzte Woche erfolgreich abgeschlossen habe, fühle ich mich nun bereit, zu anderen Ufern aufzubrechen (und damit meine ich nichts, was irgendwie mit dem CH-Partnerschaftsgesetz zu tun hätte!
laugh.gif
)...

Nachdem ich die letzten Wochen in JSP gestöbert habe, bin ich zum Schluss gekommen, besser erst noch etwas besser Java selber zu lernen und nebenher auf PHP5 und MySQL >=4 aufzuspringen.
smile.gif


Da ich sehr gerne OOP programmiere, kommt mir PHP5 sehr gerufen (trotz einigen leidigen Punkten, welche Javaliebhaber nach wie vor vermissen müssen), und auch will ich endlich mein theoretisches Wissen über intelligente Datenbanken einzusetzen beginnen (immerhin arbeite ich in einer Oracle-Database-Firma...).

Ich wollte mal ganz so nebenher fragen, wer von euch sich nun definitiv näher mit PHP5 und MySQL >=4 auseinandersetzt und zukünftig auf dieser Kombination arbeiten will (also OOP und z.B. MySQL's InnoDB)? Wäre schön, wenn es zu regem Erfahrungsaustausch kommen würde hier im Forum.
smile.gif


Liebe Grüsse
Josh
 
QUOTE
fühle ich mich nun bereit, zu anderen Ufern aufzubrechen [...] und damit meine ich nichts, was irgendwie mit dem CH-Partnerschaftsgesetz zu tun hätte!



Ist vielleicht auch noch zu früh fürs Heiraten
wink.gif
. Aber das wird schon irgendwann klappen .. wenn du den richtigen findest
wink.gif
.

Yup ich arbeite schon seit der ersten Beta nur noch mit PHP5. Ich hab eigentlich keinen Drang auf die neuen MySQLs umzusteigen da ich sowieso keien Transaktionen, etc. benutze.

Bin zufrieden mit den OOP Features von PHP5 und auch mit den neuen Libraries (SimpleXML, ...)

Greets,
Joel
 
Ich habe zumindest vor mir irgendwann in nächster Zeit ein Testsystem mit php5 hinzustellen.
Im Moment bin ich gerade dabei wieder mehr OOP in PHP zu verwenden und möchte da sicherstellen, dass das in php5 auch noch alles geht, entwickelt wird aber unter/für php4.

Zeit für php5 habe ich leider noch nicht gefunden…..
unsure.gif
 
QUOTE Ich hab eigentlich keinen Drang auf die neuen MySQLs umzusteigen da ich sowieso keien Transaktionen, etc. benutze.

Hast du schon von Foreign Keys gehört? Feiiiine Sache, erspart viel mühsame Kleinarbeit und bewahrt vor Inkonsistenzen in der DB!
smile.gif



QUOTE Im Moment bin ich gerade dabei wieder mehr OOP in PHP zu verwenden und möchte da sicherstellen, dass das in php5 auch noch alles geht, entwickelt wird aber unter/für php4.

Wenn du viel mit Pointern arbeitest (was durchaus empfehlenswert ist) dann wirst du eine böse Überraschung erleben, denn in PHP 5 sind ALLE Parameter Pointer, also genau wie in Java! Somit wird PHP < 5 Code mit Pointern à la

function myFunction (&somePointer) {}

reklamieren bzw. sieht es als deprecated an... Eine elegante Lösung für das Problem der Portabilität von Code habe ich noch nicht gefunden, ich werde aber weiterrecherchieren.
smile.gif
 
das konnte mysql doch schon immer (foreign keys z.
cool.gif
aber du hättest es halt so compilieren müssen. hab ich auf jeden fall mal gehört.
wenn du eine gute datenbank haben willst würd ich einfach postgresql nehmen... die kann transactionen, foreign keys, functionen, ... schon lang/länger. ist halt nicht auf jedem webspace drauf
unsure.gif


mysql wie php sind halt für mal eben schnell entworfen. und haben daher bewust manche sachen gar nicht eingebaut (foreign keys) die sind halt überflüssiger ballast.

zu klassen, ja auch ich nutze sie in letzter zeit vermerkt, nachdem ich endlich mal kapiert habe wie das funktioniert. aber so die ganz speziellen sachen wie pointer oder was du sagtest davon habe ich keine ahnung. wäre aber sicher interessant.

der vorteil bei java ist das man mit klassen programmieren muss, in php kann man es sich halt ausschen. für jemanden der java lernt und php schon kann ist es aber lästig zu verstehen warum ich einer methode in java einen rückgabe typ angeben muss und der dann auch eingehalten werden muss
tongue.gif
php ist da etwas lässiger. vor und nachteile.
 
QUOTE das konnte mysql doch schon immer (foreign keys z.B.) aber du hättest es halt so compilieren müssen. hab ich auf jeden fall mal gehört.

Ja das kann MySQL mittels InnoDB schon seit V3.x. Aber seit V4 ist InnoDB standardmässig Bestandteil von MySQL, daher kann man auch drauf gehen, dass Webspace mit V4 auch immer InnoDB zur Verfügung stellen sollte (ausser es ist deaktiviert).


QUOTE wenn du eine gute datenbank haben willst würd ich einfach postgresql nehmen... die kann transactionen, foreign keys, functionen, ... schon lang/länger. ist halt nicht auf jedem webspace drauf unsure.gif

mysql wie php sind halt für mal eben schnell entworfen. und haben daher bewust manche sachen gar nicht eingebaut (foreign keys) die sind halt überflüssiger ballast.

Das klingt sicherlich interessant mit PostgreSQL. Ich habe mich noch nie damit auseinandergesetzt, aber wäre sicherlich mal einen Blick wert. Da ich aber hobbymässig PHP-Apps erstelle, welche ich gratis zum Download anbiete, möchte ich das Zielpublikum nicht einschränken durch PostgreSQL.


QUOTE die ganz speziellen sachen wie pointer oder was du sagtest davon habe ich keine ahnung. wäre aber sicher interessant.

Ich sollte mich etwas genauer ausdrücken: mit Pointern meine ich Referenzen... die gibt es schon seit Uhrzeiten, sowohl in C als auch in PHP.


QUOTE der vorteil bei java ist das man mit klassen programmieren muss, in php kann man es sich halt ausschen. für jemanden der java lernt und php schon kann ist es aber lästig zu verstehen warum ich einer methode in java einen rückgabe typ angeben muss und der dann auch eingehalten werden muss tongue.gif php ist da etwas lässiger. vor und nachteile.

Das empfinde ich nicht als Nachteil von Java, sondern als absolut logischer Vorteil. Es kann doch nicht "sauber" sein, wenn mir eine Methode das eine Mal ein Objekt des Type BlaBla zurückgibt und einmal einen Integer und einmal einen String?! Dann stimmt etwas im Code nicht oder im Applikationsdesign.
Java schränkt da sehr ein, was für den "kleinen Programmierhunger zwischendurch" als einschränken empfunden werden kann, aber sobald es sich um grössere Applikationen handelt, ist man froh um jede Restriktion, welche schon durch den Code selber bedingt wird und einen vor Folgefehlern und Unsauberkeiten schützt.

Meines Erachtens fehlen in PHP5 folgende wichtigen OOP Features:

- Angabe des erzwungenen Funktionsparametertyps bei Methoden auch für primitive Datentypen (int, String, boolean...)
- Angabe des erzwungenen Rückgabetyps einer Methode
- Eine festgelegte Ordner-/Dateistruktur, um endlich Ordnung in das Klassen- und Packagechaos zu bekommen.
- Klar festgelegte Struktur, wie eine Klassendatei aussehen soll, also ob es da Konstanten drin geben darf, require() etc.
- Mehrfachvererbung (gibt es in Java allerdings auch nicht...)

Grüsse
Josh
 
das man je nach anfrage unterschiedliche rückgabe parameter hat ist sicherlich schlecht.
was aber meiner meinung nach sinvoll ist

CODE
if ( ausdruck = true ) {
return ( int gefundene_nr );
} else {
retrun ( boolean false );
}



das kommt schon gelegentlich mal vor das ich soetwas bräuchte. wie würdest du in java sowas realisieren? wenn man mal davon ausgeht das int gefundene_nr auch - oder 0 sein kann. ich brauche dann einen logischen rückgabe wert den ich aber nicht bekommen kann. ich kann ja nur int oder boolean wählen.


QUOTE
- Angabe des erzwungenen Funktionsparametertyps bei Methoden auch für primitive Datentypen (int, String, boolean...)
- Angabe des erzwungenen Rückgabetyps einer Methode
- Eine festgelegte Ordner-/Dateistruktur, um endlich Ordnung in das Klassen- und Packagechaos zu bekommen.
- Klar festgelegte Struktur, wie eine Klassendatei aussehen soll, also ob es da Konstanten drin geben darf, require() etc.
- Mehrfachvererbung (gibt es in Java allerdings auch nicht...)



regeln haben den vorteil das man sich nicht aussuchen kann ob man jetzt "richitg" oder eben mal kurz zwischendurch was hin programmieren möchte. man muss es immer so machen wie es vorgeben ist. dadurch wird der code generell fehlerunanfälliger. was für größere projekte sicherlich absolut gut ist. für kleine projekte erlegt man sich/dem programmier aber einen großen overhead auf.

in java kann ich dateien ja doch eigentlich auch beleibig ablegen. gut ich bin etwas eingeschränkt und es gibt auch "empfehlen" wie das paket heissen sollte. aber gerade eine vorgegebene ordnerstruktur fände ich ja wirklich übertrieben.
 
QUOTE (manuel @ Do 9.6.2005, 19:21)
CODE
if ( ausdruck = true ) {
 return ( int gefundene_nr );
} else {
 retrun ( boolean false );
}



das kommt schon gelegentlich mal vor das ich soetwas bräuchte. wie würdest du in java sowas realisieren? wenn man mal davon ausgeht das int gefundene_nr auch - oder 0 sein kann. ich brauche dann einen logischen rückgabe wert den ich aber nicht bekommen kann. ich kann ja nur int oder boolean wählen.

Eine Variable kann ja immer auch Null sein (oder Nothing, wie auch immer das in der jeweiligen Sprache heisst), egal welchen Typ sie nun hat. Es ist am einfachsten, in einem Fall wo die Funktion "auf die Nase fällt", Null zurückzugeben. Der Aufrufer muss dann nur prüfen, ob er einen gültigen Wert oder eben Null bekommen hat, und entsprechend reagieren. Wenn er zu faul ist oder der Wert kritisch für die weitere Ausführung ist, muss ers nicht mal prüfen, sondern kann sein Programm in einen Fehler laufen lassen und gegebenenfalls dem User eine entsprechende Fehlermeldung ausgeben.


QUOTE (manuel @ Do 9.6.2005, 19:21)in java kann ich dateien ja doch eigentlich auch beleibig ablegen. gut ich bin etwas eingeschränkt und es gibt auch "empfehlen" wie das paket heissen sollte. aber gerade eine vorgegebene ordnerstruktur fände ich ja wirklich übertrieben.

Gegen eine vorgegebene Ordnerstruktur müsste ich in aller Form protestieren ;-)
Ich bestimme gern selber, wo und wie ich meine Dateien ablege; da hat weder die Sprache noch die IDE mir dreinzureden. Aber das ist wohl individuell - kann sein dass "Chaoten" das Strukturieren lieber delegieren
wink.gif


Griessli
Irene

 
QUOTE
Es ist am einfachsten, in einem Fall wo die Funktion "auf die Nase fällt", Null zurückzugeben.



Yup, oder man könnte eine Exception werfen.


CODE
if ( ausdruck = true ) {
return ( int gefundene_nr );
} else {
retrun ( boolean false );
}



Dann muss man aber schauen dass man mit

CODE
if ( function() === TRUE )



arbeitet (3 x =) anstatt mit


CODE
if ( function() )



oder so
tongue.gif
 
vielleicht bin ich ja von java her zu strikte, aber ich würde einer funktion NIE verschiedene rückgabetypen geben. wie Irene sagte, kann zur not immer noch null zurückgegeben werden; mit einem guten exception handling sollte aber auch das in häufigen fällen überflüssig sein.
 
Zurück
Oben