mOSSpOWER Geschrieben 13. März 2008 Geschrieben 13. März 2008 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. Zitieren
hscade Geschrieben 13. März 2008 Geschrieben 13. März 2008 quakenet:#php :mod: die meisten Tutorials sind zwar schon älter sind trotzdem sehr gut erklärt. Hoffe das bringt dich weiter! Zitieren
Aiun Geschrieben 13. März 2008 Geschrieben 13. März 2008 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. Zitieren
mOSSpOWER Geschrieben 13. März 2008 Autor Geschrieben 13. März 2008 @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 Zitieren
Aiun Geschrieben 13. März 2008 Geschrieben 13. März 2008 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) Zitieren
Amstelchen Geschrieben 13. März 2008 Geschrieben 13. März 2008 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 Zitieren
mOSSpOWER Geschrieben 15. März 2008 Autor Geschrieben 15. März 2008 @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! Zitieren
Aiun Geschrieben 17. März 2008 Geschrieben 17. März 2008 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 Zitieren
mOSSpOWER Geschrieben 17. März 2008 Autor Geschrieben 17. März 2008 ... 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? Zitieren
Aiun Geschrieben 18. März 2008 Geschrieben 18. März 2008 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. Zitieren
mOSSpOWER Geschrieben 19. März 2008 Autor Geschrieben 19. März 2008 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? Zitieren
Aiun Geschrieben 19. März 2008 Geschrieben 19. März 2008 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 Zitieren
Amstelchen Geschrieben 19. März 2008 Geschrieben 19. März 2008 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 Zitieren
mOSSpOWER Geschrieben 20. März 2008 Autor Geschrieben 20. März 2008 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. Zitieren
mOSSpOWER Geschrieben 20. März 2008 Autor Geschrieben 20. März 2008 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ß Zitieren
Aiun Geschrieben 20. März 2008 Geschrieben 20. März 2008 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 .... Zitieren
mOSSpOWER Geschrieben 20. März 2008 Autor Geschrieben 20. März 2008 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. Zitieren
Amstelchen Geschrieben 20. März 2008 Geschrieben 20. März 2008 wenn du keine php.ini verwendest, werden deben die eincompilierten defaults genommen, die allerdings von PHP-version zu version verschieden sind, besonders bei grossen versionssprüngen von 4 auf 5 oder 5.1 auf 5.2. s'Amstel Zitieren
mOSSpOWER Geschrieben 6. April 2008 Autor Geschrieben 6. April 2008 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ß Zitieren
Aiun Geschrieben 6. April 2008 Geschrieben 6. April 2008 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 ? Zitieren
mOSSpOWER Geschrieben 6. April 2008 Autor Geschrieben 6. April 2008 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. Zitieren
Aiun Geschrieben 7. April 2008 Geschrieben 7. April 2008 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. Zitieren
Dragon8 Geschrieben 7. April 2008 Geschrieben 7. April 2008 @mOSSpOWER; am ende des Wiki-Artikels den du verlinkt hast, steht der dieser Link Zend Debugger mit der Überschrift "A guide to remote debugging using PDT". Meinste nicht das wäre in etwa das, was du haben wolltest? Zitieren
mOSSpOWER Geschrieben 7. April 2008 Autor Geschrieben 7. April 2008 @all, ich habe es gestern noch hingebracht, mit XDebug - müssen halt zwei Zeilen in die php.ini ... aber ihr wisst ja, wenn man nicht weiß welche ... dann ... Zitieren
Empfohlene Beiträge
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.