PHP Wie das "drumherum" bei PHP lernen?

Jack159

Lieutenant
Registriert
Dez. 2011
Beiträge
766
Hallo,

Ich kann bereits Java und habe auch bereits mal etwas mit PHP rumgespielt. Mir sind sowohl die Syntax als auch Dinge wie Get, Post oder Sessions aus PHP bekannt. Mein Problem ist eher, dass ich nicht so recht weiß, was der richtige Weg ist, Webseiten mit PHP zu realisieren.
Jedes PHP-Tutorial beschäftigt sich lediglich mit der Sprachsyntax und vielleicht noch Get, Post und Sessions. Damit kann man zwar schon was anfangen, aber da fehlen ja etliche Dinge wie z.B. URL-Routing, MVC etc. Dinge, die in jedes saubere PHP-Projekt gehören. Zwar gibt es auch dafür Tutorials, aber da macht es wieder fast jeder anders als der andere... Die ganzen Themen dann zu kombinieren wird fast unmöglich.

Ich würde beispielsweise gerne mal irgendein Projekt umsetzten (FB-Klon o.ä.), aber ohne einen "Ast" an den ich mich hangeln kann, macht das ganze ja kaum Sinn, da ich es sowieso dann komplett unüblich/falsch machen würde.

Wie geht man bei PHP den nächsten Schritt, wenn man in etwa meinen Wissensstand hat?
 
Einfach selber ausprobieren? :)
Learning by doing
 
Hi,

ich habe mir vorgenommen ein Logindaten Generator in PHP zu schreiben. Da ich komplette Neuling bei PHP bin habe ich mir ein Buch bei Amazon gekauft und nach passenden Scripts (free) mit Google gesucht. Dann habe ich es ansprechend abgewandelt und in meine HP integriert. Ging sogar ziemlich gut, nur der Syntax von PHP ist eine Katastrophe (für mich). Da habe ich die größte Problem (habe früher Software erstellt mit GFA Basic) gehabt.
Das Projekt ist letztendlich geglückt. Und ich habe dabei sehr viel gelernt.
 
Zuletzt bearbeitet von einem Moderator:
Jack159 schrieb:
Damit kann man zwar schon was anfangen, aber da fehlen ja etliche Dinge wie z.B. URL-Routing, MVC etc. Dinge, die in jedes saubere PHP-Projekt gehören.
Weil das auch nix für ein reguläres Sammelsurium-Tutorial ist.... Und außerdem schreibt doch eh keiner, der noch ganz bei Trost ist, seine MVC/Routing/... - Lösung selbst. Wozu gibts Frameworks?
Man KÖNNTE ein komplett eigenes MVC-Framework schreiben und es mit dem ganzen Quatsch wie Routing, Datenbank-Abstraktion, Template-Verarbeitung,.... ausstatten. Aber was soll das bringen? Ist doch pure Zeitverschwendung.

Schnapp dir eins der brauchbaren Frameworks und leg damit los. Symfony2 und Zend sind so etwas wie die Platzhirsche, aber es gibt viel mehr. Manche sind extrem schlank, es gibt auch Mini-Frameworks, die nur elementares Routing & Datenbank-Handling abstrahieren, dir aber den Rest zur freien Gestaltung lassen.

Du würdest doch in Java auch nicht mit "nacktem" Java arbeiten, sondern auf die verschiedenen erweiterten Bibliotheken zurückgreifen.
 
Daaron schrieb:
Man KÖNNTE ein komplett eigenes MVC-Framework schreiben und es mit dem ganzen Quatsch wie Routing, Datenbank-Abstraktion, Template-Verarbeitung,.... ausstatten. Aber was soll das bringen? Ist doch pure Zeitverschwendung.

Schnapp dir eins der brauchbaren Frameworks und leg damit los.

Daran habe ich auch gedacht, aber wäre es für einen Anfänger denn wirklich ratsam, wenn er direkt auf Frameworks zurückgreift und dort vorgefertigte Dinge wie URL-Routing etc. verwendet, ohne diese jemals selber von 0 an mal selber entwickelt zu haben? Sowas ist doch sicherlich guter Gesprächsstoff für Vorstellungsgespräche, um zu sehen, ob man es verstanden hat, oder?

Oder ist es wirklich ratsam direkt von "PHP-Syntaxx + Get, Post und Session"-Wissen/Tutorials auf Frameworks zu wechseln und damit dann die ersten größeren Projekte umzusetzen?
 
Was willste denn machen? In PHP die HTML-Seiten generieren lassen ohne Javascript?

Wenn du Javascript verwendest, dann brauchste in PHP eigentlich nur noch mehr die Kommunikation zwischen Benutzer (Client) und Datenbank (z.B. SQL) schreiben. Das kannst du dann per JSON-Objekt herumschicken. Ob du POST oder GET verwendest macht programmiertechnisch keinen Unterschied.

Da kannste dann einfach schreiben

PHP:
<?php

$stor = $_POST; // oder wahlweise $stor = $_GET;

$verbindung = new PDO(meinedatenbank blabla);

if ($stor["anfrage"] == "daten_lesen")
{
$ergebnis = $verbindung->query("SELECT bla FROM blablub WHERE hulapla");
}

print json_encode($ergebnis->fetchAll());




?>

und in Javascript halt dann sowas wie

Code:
$.ajax({
type: "POST",
url: "/meine/datei.php",
data: { name: "John", location: "Boston" }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
var muh = JSON.parse(msg);
$("#meinelement").append(msg.Birne);
});

Kann da für Javascript z.B. Jquery und Bootstrap empfehlen, da gibts zig Plugins. Für PHP brauchste da ja eigentlich keine, da das ja nur zum Daten speichern aufm Server dient.

Einschränkung bei Javascript ist halt, dass Javascript glaube ich nur HTTP unterstützt und das auch nur auf der gleichen Domain, sonst bräuchte man dieses drecks PHP ja gar nicht mehr..

Du kannst natürlich auch die Webseite komplett von PHP generieren lassen und Javascript komplett weglassen.
 
Zuletzt bearbeitet:
Hi,

kingler schrieb:
Du kannst natürlich auch die Webseite komplett von PHP generieren lassen und Javascript komplett weglassen.

und das wäre besser, weil erstens wird PHP auf dem Server ausgeführt (funktioniert bei jeden User) und zweitens viele Nutzer schalten bei sich Java ab.
 
Jack159 schrieb:
Daran habe ich auch gedacht, aber wäre es für einen Anfänger denn wirklich ratsam, wenn er direkt auf Frameworks zurückgreift und dort vorgefertigte Dinge wie URL-Routing etc. verwendet, ohne diese jemals selber von 0 an mal selber entwickelt zu haben? Sowas ist doch sicherlich guter Gesprächsstoff für Vorstellungsgespräche, um zu sehen, ob man es verstanden hat, oder?
Na ja, was gibts an Routing zu verstehen? Du hast ne Rewrite-Regel im Webserver, die erst mal aus /pfad/zur/seite ein index.php?page=pfad/zur/seite macht. Dann hast du irgend eine Form von Musterfilter, der aus diesem Request heraus pickt, welche Inhalte du jetzt eigentlich angefragt hast.
Ich halte es für deutlich sinnvoller, sich eine gut geschriebene & flexible Implementierung zu Gemüte zu führen, als das Rad halbgar neu zu erfinden und am Ende etwas falsches zu lernen. Bei Routing mags ja noch gehen, aber wenn du bei der Filezugriff-Abstraktion was falsch machst, hast du am Ende ne Directory Traversal - Lücke. Verbockst du die Datenbank-Abstraktion, dann wirst du mit SQL Injections abgeschossen.

Oder ist es wirklich ratsam direkt von "PHP-Syntaxx + Get, Post und Session"-Wissen/Tutorials auf Frameworks zu wechseln und damit dann die ersten größeren Projekte umzusetzen?
Ich würde sogar sagen: Setz die Projekte mit einem guten CMS um. Niemand bezahlt dich dafür, dass du deine eigenen Routing-Funktionen schreibst, deine eigene Template-Lösung, dein eigenes Model-Framework,... Die Leute bezahlen dich dafür, dass am Ende eine Webseite existiert, die ihre Bedürfnisse erfüllt.

kingler schrieb:
Was willste denn machen? In PHP die HTML-Seiten generieren lassen ohne Javascript?
Warum sollte man Seiten MIT JavaScript generieren? Das ist doch bescheuert. Das macht nur Sinn, wenn man eine reine Web-Applikation schreibt, die weder für Suchmaschinen interessant ist noch auf Barrierefreiheit Wert legt. Für n dämliches Browsergame mag das gehen, aber selbst ein Webmailer sollte auch ohne JS funktionieren.

Ob du POST oder GET verwendest macht programmiertechnisch keinen Unterschied.
Falsch. Es gibt einen großen semantischen Unterschied zwischen POST und GET. Der Unterschied liegt schon daran, was passiert, wenn man denselben Request (z.B. durch F5-Spam) mehrfach absendet.
Denk nur mal an Warenkörbe. Werden die per GET gefüllt oder gar abgesendet? Na ganz sicher nicht...

Einschränkung bei Javascript ist halt, dass Javascript glaube ich nur HTTP unterstützt und das auch nur auf der gleichen Domain, sonst bräuchte man dieses drecks PHP ja gar nicht mehr..
Totaler Quatsch.
1.) Natürlich kann (und sollte) JS auch über HTTPS/SPDY verwendet werden.
2.) Ja, die Same Origin Policy muss beachtet werden... aber...
3.) PHP "braucht" man auch nicht. Man kann genauso gut Perl, Python, Ruby, Java, C, ASP.NET oder sogar serverseitiges JS (Node.JS) für das Server-Backend verwenden. Aber du BRAUCHST eine Server-Sprache, da der Client keine Verbindungen zu deiner Datenbank oder deinen Dateien herstellen kann und DARF.

Du kannst natürlich auch die Webseite komplett von PHP generieren lassen und Javascript komplett weglassen.
Auch falsch.

Ja, man SOLLTE alle Inhalte von PHP (oder der gewählten Serversprache) erzeugen lassen, den kompletten HTML-Code der Seite. Das sorgt z.B. überhaupt erst einmal dafür, dass Suchmaschinen die Seite erfassen können und sich somit überhaupt mal jemand auf dein Angebot verirrt. Auch Personen, die aus persönlicher Überzeugung, technischen Limitierungen (z.B. Firmennetze) oder körperlicher Beeinträchtigung mit JavaScript nichts anfangen können, haben somit Zugang zu deinem Angebot.
Außerdem ist es rundweg schneller, die Inhalte bereits in einer browser-tauglichen Aufbereitung (also semantisch korrektes HTML) auszuliefern, anstatt den Browser mit JSON-Mumpitz zu bombardieren, den er dann erst durch komplexe JS-Lösungen schicken muss, um mit den Daten was anfangen zu können.

Aber nein, man sollte JS nicht komplett weglassen.
1.) kann man mit JS wunderbare optische Effekte erzielen, die mit CSS unmöglich oder unpraktisch sind.
2.) ist das dynamische Nachladen & Manipulieren von Inhalten durchaus nützlich. Es sollte nur nicht als GEGEBEN angenommen werden. Eine Navigation lässt sich mit JS deutlich besser bedienen? Mag sein. Das heißt aber nicht, dass sie ohne JS unbedienbar sein sollte. Sie sollte ohne JS sehr gut funktionieren, JS sollte ihr nur den letzten Schliff verpassen.
3.) Für gewisse kleine Aspekte ist eine JS-Lösung ohne Fallback durchaus angebracht. Hierbei sollte es sich aber nicht um Kerninhalte des Angebots handeln, sondern um erweiterte Funktionen.

master.rv schrieb:
und das wäre besser, weil erstens wird PHP auf dem Server ausgeführt (funktioniert bei jeden User)
Vor allem ist es performanter. Der Server trägt die Last, vernünftiges HTML zusammen zu bauen. Der Client trägt nur noch die Last, das HTML mit CSS aufzuhübschen und dann zu parsen. Das ist für Smartphones deutlich sparsamer, statt hier jeden Mist erst durch zig zusätzliche JSON-Parser zu schicken.

und zweitens viele Nutzer schalten bei sich Java ab.
Java ist nicht JavaScript.
 
Jack159 schrieb:
Daran habe ich auch gedacht, aber wäre es für einen Anfänger denn wirklich ratsam, wenn er direkt auf Frameworks zurückgreift und dort vorgefertigte Dinge wie URL-Routing etc. verwendet, ohne diese jemals selber von 0 an mal selber entwickelt zu haben?

Klar kannst du das alles auch einmal selbst machen, aber das kostet dich eben viel Zeit und was rauskommt ist trotzdem nicht gut.
Und früher oder später wirst du so oder so mal in den Quellcode des Frameworks reinsehen wie z.B. ds Routing implementiert ist, wenn du es anpassen willst oder so.
 
Zurück
Oben