Zum Inhalt springen

Hilfe beim Einstieg in PHP / MySQL


Empfohlene Beiträge

Hallo Kollegen,

kurz der Background. Ich habe letztes Jahr ASP.NET / C# programmiert und davor 4 Jahre Java, hier hauptsächlich Webanwendungen (Struts + JSP + Eclipse). Jetzt fange ich bei einer Firma an und möchte mir PHP + MySQL beibringen. Welche Lektüre ratet ihr mir. Ich suche keine mit HTML-Käse oder oberflächliche Programmieranfängerbeispielen. Ich suche gute Lektüre auf "O'Reilly-Niveau". Was würdet ihr mir raten für den Anfang? Gibt es gute Online-Bücher? Welches Datenbankvisualisierungstool verwendet ihr? Welche Entwicklungsumgebung? Sonstige Tipps + Seiten, wie z.B. codeproject ect. Welche Foren sind auch noch gut? (neben dem hier natürlich)

Danke schon einmal für eure Hilfe. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Als Entwicklungsumgebung kann ich dir phpEclipse empfehlen,

wenn du eh die Arbeit mit Eclipse gewohnt bist, kommt dir das auch noch zu gute.

Die Einarbeitung in PHP ist wieder etwas anderes.

Ganz gut sind die openbooks von galileocomputing, einfach mal eine suchmaschine deiner wahl verwenden.

Das Niveau das du von Java gewohnt bist, gibt es in PHP dank diverser Frameworks / Klassenbibliotheken

da kann ich mal aufzählen

- ZendFramework

(eine umfangreiche Ansammlung von Hilfsfunktionen und Klassen)

- phpsolar

(full scale also Controller, Datenzugriff, MVC-Modell...)

- limb3

(keine Ahnung, nur kurz reingesehen)

- flow3

(Coming soon, von den typo3-Jungs)

- ezcomponents

(mehr auf das visuelle ausgelegt)

und dann am Rande erwähnt Sphere3, Eine Eigenentwicklung meinerseits.

Jedes von den Systemen hat genau wie JSP, Struts & Co sein eigenes 'How-To-Use'.

Natives PHP wie gesagt openbook. Aber ehrlich gesagt würde ich mir rel. früh ein / mehrere Frameworks ansehen, spart dir eine Menge Stress :)

"Datenbankvisualisierungstool" ich vermute du spielst auf phpmyadmin an, das ist, behaupte ich mal, eine art Standard in Verbindung mit php und/oder mysql.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Aiun,

super, vielen Dank erst mal - ich werde mich da gleich mal einlesen.

Mir sind gleich nochmal drei Fragen eingefallen.

1) Wie sieht es mit OR-Mapping aus? Gibt es sowas wie Hibernate?

2) Welche Version würdet ihr mir für den Anfang raten - ich würde gerne objektorientiert programmieren, da wäre ja Version 5 richtig. Versäume ich etwas oder soll ich mit Version 4 anfangen?

3) Gibt es bei mySQL Stored-Prcedures, also wie bei Oracle (PL/SQL) oder SQLServer (T-SQL)?

Danke auch schon mal im voraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

1) Wie sieht es mit OR-Mapping aus? Gibt es sowas wie Hibernate?

Wie hibernate: nein, nicht das ich wüsste.

OR-Mapping haben einige der Frameworks, wie gut, hängt von den einzelnen ab.

(einer der Gründe warum ich Sphere3 begonnen hatte). Wirklich "gutes" (meine Meinung / Anforderungen) Mapping ist aber eher selten.

Da meine Hibernate Zeit kurz war, und lange her ist k.A. ob es das ist was du suchst:

ich nutze einen Codegenerator der mir aus XML-Dateien Basis Entity und Setklassen generiert, so das alle verbleibende Implementierung rein objektorientiert abläuft.

2) Welche Version würdet ihr mir für den Anfang raten - ich würde gerne objektorientiert programmieren, da wäre ja Version 5 richtig. Versäume ich etwas oder soll ich mit Version 4 anfangen?

Mit 5 anfangen ist der richtige Weg, wenn du dann doch auf 4 entwickeln musst, musst du dich mit den Eigenheiten eh beschäftigen. Aber 4 sollte langsam sein Ende finden :)

3) Gibt es bei mySQL Stored-Prcedures, also wie bei Oracle (PL/SQL) oder SQLServer (T-SQL)?

da musst du auf die antwort der anderen warten. Ich meine mich zu erinnern das Mysql5 das kann. (kein Fan von SP)

Link zu diesem Kommentar
Auf anderen Seiten teilen

SPs sind in MySQL ab 5 möglich, IMO allerdings noch zu unausgereift, man muss mancherlei workarounds einsetzen und in produktiven umgebungen sind diese oftmals nicht einsetzbar bzw. schlicht fehl am platz.

ich behaupte, dass MySQL puncto stored procedures derzeit von der brauchbarkeit nicht mit SQL Server oder Oracle verglichen werden kann.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

@all,

vielen Dank für die zahlreichen Hinweise - ich werde alle nach und nach näher betrachten. Ich will auf jeden Fall in Zukunft nicht auf OR-Mapping, Objektorientierung und ggf. MVC-Framework verzichten und hoffe, dass ich hier einige Frameworks / Generatoren finden kann. Für den Einstieg habe ich mir erst einmal dieses Buch bestellt - denke, dass ich hier einen guten Einstieg hinbekomme.

Also, danke erst mal und weitere Tipps sind natürlich willkommen und auch erwünscht.

Schönes Wochenende! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Darf ich die Frage mal umdrehen ?

ich schreibe derzeit Dokumentationen (APIdoc, Tutorial...)

Was für Informationen sind am wichtigsten oder welche Art von Tutorials erscheinen dir / euch am sinnvollsten ?

Ich bin jetzt grob bei:

- Skeleton (funktionslose, einfache Umgebung als Download)

- erster Datenbankzugriff

- Datenbankabstraktion / OR-Mapping

- Templates

- Controller & Applikationsstruktur (MVC...)

weitere Ideen ?

danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

... ich schreibe derzeit Dokumentationen (APIdoc, Tutorial...)

Äh, steh' ich jetzt auf dem Schlauch? Für was denn Doku?

... weitere Ideen ?

Das deckt schon sehr viel ab, jedenfalls was mich interessiert. Interessant wären auch noch sog. Design Patterns (Exceptionhandling, Validierungen, Schichtentrennung, Code-Behind-Dateien, Proxies ect.), die man sich im Laufe der Jahre angeeignet hat (die müssen sich ja nicht immer "nur" auf PHP beziehen).

Gruß

@all,

Die Tools von mysql, MySQL Administrator, MySQL Query-Browser und MySQL Workbench, sind ja gar net mal so schlecht. Warum dann noch PHPMyAdmin verwenden - kann mir mal einer erklären, warum das das sog. Non-Plus-Ultra sein soll? - die MySQL-Tools sind doch wesentlich besser, oder?

Link zu diesem Kommentar
Auf anderen Seiten teilen

he he,

für ein Framework aus eigener Hand.

hmm, mysql tools, könnte es sein das das reine Windows-Programme sind ?

so 1:1 sind die doch nicht auf Linux vorhanden oder irre ich ?

phpmyadmin hast du oft/schnell auf jedem Server mit drauf und kannst auch ohne rootrechte oder ssh zugreifen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm, mysql tools, könnte es sein das das reine Windows-Programme sind ?

so 1:1 sind die doch nicht auf Linux vorhanden oder irre ich ?

phpmyadmin hast du oft/schnell auf jedem Server mit drauf und kannst auch ohne rootrechte oder ssh zugreifen.

Ja, phpmyadmin geht über HTTP-Protokoll - bei den Tools (die es übrigens auch für Linux gibt) stellen sich einige Provider "quer".

So, ich habe jetzt mal Apache mit PHP verbunden. Eine Frage. Wie bekomme ich die Fehler auf die Hauptseite, bzw. auf die Console (starte Apache über Console) ... ist ja nervig, immer in die ErrorLogs zu schauen .. das muss doch auch anders gehen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welche Art Fehler ?

in PHP gibt es mehrere Error-Reporting Parameter die in der php.ini gesetzt werden, bzw. auch zur laufzeit geändert werden können.

Die meisten Fehler landen per default im Browserfenster, das kann man aber unterdrücken. Exceptions werden leider von PHP selbst fast nie geworfen (viele Frameworks erzeugen Exceptions durch eigene Prüffunktionen in den lowlevel-Funktionen)

schau dir diesbezuglich "errorreporting()" "seterrorhandler()", oder so ähnlich heißen die funktionen an.

in der PHP.ini einfach nach "Error reporting" suchen, da stehen die default-Werte für deinen Server. in der php.ini stehen auch meistens die erklärungen zu den parametern, denke damit solltest du klar kommen.

Wenn du aber Apache Fehler meinst, mir ist kein Beispiel bekannt wo die nicht im error-log landen :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie bekomme ich die Fehler auf die Hauptseite, bzw. auf die Console (starte Apache über Console) ... ist ja nervig, immer in die ErrorLogs zu schauen .. das muss doch auch anders gehen?

zweite console aufmachen und mit "tail" die error_log von apache oder die von PHP, die zuvor mit der php.ini-direktive error_log definiert wurde, ausspucken lassen.

oder einen error_handler definieren, der die PHP-scriptfehler mailt :floet:

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

zweite console aufmachen und mit "tail" die error_log von apache oder die von PHP, die zuvor mit der php.ini-direktive error_log definiert wurde, ausspucken lassen.

oder einen error_handler definieren, der die PHP-scriptfehler mailt :floet:

s'Amstel

Klar, danke erst mal - da werde ich dann schauen, wie ich Fehler behandele. Es geht mir erst mal darum, dass ich in der "Anlernphase" schnell die Fehler finde und nicht ewig auf der Console "rumturnen" muss oder irgendswelche Error Handler definieren muss - das ist für die Produktion interessant. Lösung steht im nächsten Post.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Welche Art Fehler ?

in PHP gibt es mehrere Error-Reporting Parameter die in der php.ini gesetzt werden, bzw. auch zur laufzeit geändert werden können.

Die meisten Fehler landen per default im Browserfenster, das kann man aber unterdrücken. Exceptions werden leider von PHP selbst fast nie geworfen (viele Frameworks erzeugen Exceptions durch eigene Prüffunktionen in den lowlevel-Funktionen)

schau dir diesbezuglich "errorreporting()" "seterrorhandler()", oder so ähnlich heißen die funktionen an.

in der PHP.ini einfach nach "Error reporting" suchen, da stehen die default-Werte für deinen Server. in der php.ini stehen auch meistens die erklärungen zu den parametern, denke damit solltest du klar kommen.

Wenn du aber Apache Fehler meinst, mir ist kein Beispiel bekannt wo die nicht im error-log landen :(

Hi,

ich wollte einfach nur PHP-Fehler auf dem Browserfenster (oder Console) sehen. Komisch ist, dass Du die php.ini genannt hat, denn ich dachte mir, die brauche ich doch nicht (nur! für Apache). Problem war, dass ich bei einem (PHP) Fehler nur eine weiße Webseite gesehen hatte und der Fehler im ErrorLog stand. Jetzt habe ich die php.ini umbenannt in php.inix und nun bekomme ich den Fehler auf das Browserfenster. LOL

Für Apache braucht man doch die php.ini gar nicht, oder? Also ich habe in Apache (httpd.conf) diese zwei Zeilen eingefügt:

LoadModule php5_module "C:/Program Files/PHP/PHP 5.2/php5apache2_2.dll"

AddType application/x-httpd-php .php

Letztere für Extensions *.php

Funktioniert also ohne die php.ini ... warum die dann benötigt wird (Wahrscheinlich bei Windowsapplikationen mittels PHP-Schnittstelle?) weiss ich jetzt auch (noch) nicht.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

nein ;) du brauchst die php.ini

wenn du die umbenannt hast, gibt es vermutlich noch eine Standard-Variante die verwendet wird.

in der PHP ini stehen dinge für PHP drin, nicht für den Apache. z.B.

- wie lange darf ein php script laufen

- wieviel Arbeitsspeicher / Ressourcen darf ein Aufruf belegen

- div. Sicherheitseinstellungen

- Farben für Fehlermeldungen, Umfang der Fehlermeldungen

....

Link zu diesem Kommentar
Auf anderen Seiten teilen

nein ;) du brauchst die php.ini

wenn du die umbenannt hast, gibt es vermutlich noch eine Standard-Variante die verwendet wird.

in der PHP ini stehen dinge für PHP drin, nicht für den Apache. z.B.

- wie lange darf ein php script laufen

- wieviel Arbeitsspeicher / Ressourcen darf ein Aufruf belegen

- div. Sicherheitseinstellungen

- Farben für Fehlermeldungen, Umfang der Fehlermeldungen

....

Du hast Recht, irgendeine nimmt er, keine Ahnung welche er nimmt :( ... ich habe nämlich auf dem ganzen System keine mehr, nur php.ini-dis usw ... aber das Problem habe ich auch gelöst ... in der php.ini gibt es folgenden key:

display_errors ...

den habe ich von off auf on gestellt, jetzt geht es wie gewünscht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 3 Wochen später...

So, ich bin jetzt mal so weit, dass ich mir einen vernünftigen Editor (Package) gesucht habe ... nun, drei standen zur Auswahl

1) PHPEclipse

2) Aptana

3) PDT

Zu 1) Wird seit 2006 nicht mehr unterstützt und weiterentwickelt, daher für mich nicht akteptabel

Zu 2) Hat keinen Debugger mit drinnen .. ist nur ein Eclipse-Aufsatz

Zu 3) Scheint das Nonplusultra zu sein, richtig? Wer hat hier schon einmal eine Website debugged? Ich bekomme das einfach nicht hin. Muss man Apache im Debugmodus starten, so wie ich es z.B. von Tomcat kenne. Wenn ja, wie macht man das? Wer debugged von euch in Eclipse (mit Zend oder / und XDebug?)

Würde mich über Antworten und Anregungen, ggf. auch andere Editoren (Packages) freuen.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

phpeclipse wird nicht mehr weiterentwickelt ?

PDT sagt mir nichts, soweit ich erkennen kann ja auch ein eclipse Projekt, sehe ich mir morgen mal an.

Aptana macht einen guten eindruck für javascript, bei PHP fehlt die auto-Vervollständigung.

Apache hat nur einen modus, natürlich kannst du fehleranzeigen ein und ausblenden und konfigurieren. Aber wirkliche "apache"-Probleme sind selten. Kenne ich höchstens in verbindung mit der .htaccess-Datei (eine suchmaschine deiner wahl sagt dir mehr dazu)

Ansonsten währen da in PHP die normalen Fehlermeldungen und Exceptions. Parser-errors, also das was die IDE verhindern sollte, vermeide ich meist mit Eclipse (phpeclipse-Plugin?). Die wichtigsten Fehlerquellen werden von dem Debugger während der Entwicklung abgefangen.

Alles darüber hinaus versuche ich mit Exceptions abzufangen, so das mir die Anwendung dann schon sagt was nicht stimmt ,)

hilft dir das ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

phpeclipse wird nicht mehr weiterentwickelt ?

PDT sagt mir nichts, soweit ich erkennen kann ja auch ein eclipse Projekt, sehe ich mir morgen mal an.

Aptana macht einen guten eindruck für javascript, bei PHP fehlt die auto-Vervollständigung.

Apache hat nur einen modus, natürlich kannst du fehleranzeigen ein und ausblenden und konfigurieren. Aber wirkliche "apache"-Probleme sind selten. Kenne ich höchstens in verbindung mit der .htaccess-Datei (eine suchmaschine deiner wahl sagt dir mehr dazu)

Ansonsten währen da in PHP die normalen Fehlermeldungen und Exceptions. Parser-errors, also das was die IDE verhindern sollte, vermeide ich meist mit Eclipse (phpeclipse-Plugin?). Die wichtigsten Fehlerquellen werden von dem Debugger während der Entwicklung abgefangen.

Alles darüber hinaus versuche ich mit Exceptions abzufangen, so das mir die Anwendung dann schon sagt was nicht stimmt ,)

hilft dir das ?

Danke erst mal für Deine schnelle Antwort.

Klick (Infos über PDT) ... naja, was ich suche ist, dass ich in Eclipse (remote) debuggen kann (so wie ich es von Java -> Tomcat) gewohnt bin, das bedeutet durch den (PHP) Code durchsteppen (Breakpoints, Werte von Variablen anschauen und ggf. verändern usw.) .. leider kriege ich das noch nicht hinne ... ich glaube da muss man Apache im Debug-Modus starten (so kenne ich das zumindest von Tomcat und JBoss) ... aber funzzt irgendwie nicht mit dem Parameter -X bei Startup .. ich hoffe, dass ich das noch hinbekomme ... denn dann hätte ich erst mal eine super Entwicklungsumgebung (bin ja Eclipse gewohnt und ein Freund davon) .. wäre schon toll, wenn ich hier noch das Debuggen hinbekomme.

Link zu diesem Kommentar
Auf anderen Seiten teilen

mir ist "keine" Möglichkeit bekannt, das remote zu machen.

Wenn mich nicht alles täuscht, hat Zend (Studio...) einen lokalen Server dabei mit dem das gehen soll.

Ehrlich gesagt habe ich runtime-debugging nie benötigt. Es ist ja nahezu unmöglich im Web alle Parameter zu simulieren, andernfalls müsstest du ja $_GET und $_POST in der IDE mit angeben, klingt nach viel arbeit.

einige der APIs/Frameworks besitzen debugger-Klassen die du zentral aktivieren/deaktivieren kannst. Ich denke das hast du mehr von, da du dich normal durch die oberfläche klicken kannst und die Klassen die ergebnisse Inline einblenden oder mitloggen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...