Programmieren in PHP

moonwalker99

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.979
Kann mir jemand sagen, wie man in PHP prinzipiell seine Anwendungen erstellt? Bei normalen Programmiersprachen kann ein Fenster z.B. jederzeit reagieren, wenn z.B. ein Knopf gedrückt. Wenn man dafür sorgen will, dass die PHP-Anwendung auch ohne Ajax funktioniert, dann müssen alle Operationen während des Ladevorgangs passieren, also Werte speichern, zur nächsten Seite springen.

Bei mir ist es schon etwas her, dass ich mit PHP programmiert habe. Damals habe ich nur einfache Dinge gemacht.
 
Soweit ich das sagen kann ist PHP keine Programmiersprache, sondern eine Scriptsprache. Man kann auch keine Stand-Alone Anwendungen machen, sondern braucht immer einen Webserver mit PHP Unterstützung.

Was willst du denn genau machen? Daten/Felder Auslesen? GET und POST könnte helfen. Ansonsten steht alles in SelfPHP ( google)
 
Ähh ja das meint ja schon ein bissen länger her zu sein.
Meine erste frage: Was hast du gegen AJAX?

aber weiter gehts, wie LieberNetterFlo bereits sagte gibt es eigebtlich nur per POST (daten per HTTP Request übergeben) oder per GET (daten per URL übergeben) die Möglichkeit Daten zu speichern, abgesehen von einer session oder cookies, aber damit PHP die setzen kann muss es die daten einmal zugeschickt bekommen.

Beispiel:

Du willst ja offentsichtlich benutzereingaben speichern, am einfachsten geht es so:

HTML:
// Formular.html
<form method = "POST" action="auswerten.php?id=10">
     <label for = "name">Name:</label>
     <input type = "TEXT" name = "name" id = "name">
     <label for = "kommentar">Kommentar</label>
      <input type = "TEXT" name = "kommentar" id = "kommentar">
       <input type = "SUBMIT" name = "submit" id = "submit" value = "Senden">
</form>
PHP:
// auswerten.php

<?
echo "Übergebene ID: " . $_GET['id'] . "<hr>";
echo "Ihr Name: " . $_POST['name'] . "<br>";
echo "Ihr Kommentar: " . $_POST['kommentar'];

?>

Beim Klicken auf den Submit Button wird der Browser jetzt auf die Url "auswerten.php?id=10" geleitet.
id=10 steht im anschließendem PHP Script in dem $_GET Array zur verfügung. "id" ist der index, 10 ist der wert.
Die eingaben des User stehen nach dem selben schema dann im $_POST Array zur verfügung, wobei der name des Textfeldes (nicht die id!) den index repräsentiert.
 
Zuletzt bearbeitet:
Mercsen schrieb:
Ähh ja das meint ja schon ein bissen länger her zu sein.
Meine erste frage: Was hast du gegen AJAX?
Eine gute Anwendung muss auch ohne Javascript noch laufen können.

Die Frage kam bei mir auf, als ich ein paar Infos zu PHP-Frameworks gelesen habe, die alle objektorientiert arbeiten. Ich habe früher viel mit Funktionen gearbeitet, um effizienter zu werden, es blieb aber insgesamt nur ein Gefrickel. Wie man mit PHP objektorientiert programmiert, da habe ich noch keine Idee.
 
wie in jeder anderen Sprache auch!
aber mit einschränlen, php ist z.b. nur bedingt poly.....

und es MUSS hier gar nichts!

alles eine frage der Anforderung.
 
Vermutlich hat er gegen AJAX, dass er kein Javascript kann - alternativ auch, dass man Javascript deaktivieren kann und somit alle AJAX-Funktionen nicht mehr funktionieren.
 
moonwalker99 schrieb:
Eine gute Anwendung muss auch ohne Javascript noch laufen können.

Das bekommt man auch hin.

moonwalker99 schrieb:
Die Frage kam bei mir auf, als ich ein paar Infos zu PHP-Frameworks gelesen habe, die alle objektorientiert arbeiten. Ich habe früher viel mit Funktionen gearbeitet, um effizienter zu werden, es blieb aber insgesamt nur ein Gefrickel.

Webentwicklung ist generell ein gefrickel, da man hier mit zig Sprachen und Techniken gleichzeitig arbeiten muss, die auch wiederrum im Browser deaktiviert werden können.
Entweder man mag es, oder man lässt es bleiben. Ich persönlich habe mich wieder von der Webentwicklung entfernt und möchte damit auch so weit es geht nichts mehr zu tun haben.
 
Whiz-zarD schrieb:
Webentwicklung ist generell ein gefrickel, da man hier mit zig Sprachen und Techniken gleichzeitig arbeiten muss, die auch wiederrum im Browser deaktiviert werden können.
Entweder man mag es, oder man lässt es bleiben. Ich persönlich habe mich wieder von der Webentwicklung entfernt und möchte damit auch so weit es geht nichts mehr zu tun haben.

Mag sein. Meine Frage zielte eher darauf ab, mit welcher Strategie man bei PHP Klassen einsetzt, wenn man nur den Ladevorgang der Seite zur Verfügung hat, um alle Operationen durchzuführen.
 
JS hat eben wie auch Flash einen gravierenden Nachteil. Es ist abschaltbar, PHP oder HTML aber nicht. Was also macht ein klar denkender Webdesigner? richtig! er verzichtet auf diese Sachen wo er nur kann.
Irgendwie habe ich das Gefühl, das die meisten Ajax-Freaks das verdrängen und der Meinung sind dass das NIEMAND machen würde. Vor garnicht so langer Zeit haben die jQuery Macher selbst ein Statement dazu abgegeben...ein Zitat...

jQuery is a good thing ... but keep in mind ... it's surfers choice!

Keiner hat was gegen JS, das Probem ist aber dass das meiste störende Zeug eben mit JS oder Flash gemacht wird.

<Bsp>
Ein Surfer kommt auf einer Seite die mit Werbung quasi zugepflastert ist, ihm gefällt aber der Content, was macht er? er sucht eine Möglichkeit die Störung zu beseitigen, er stößt auf eine Option: JavaScript deaktivieren., er benutzt dieses Option...voila...die Störung ist weg, super denkt er sich...fragt sich aber zugleich warum in Chrome "aktivieren empfohlen steht", ist ihm aber egal und lässt das deaktiviert denn es lösst sein Problem.

Nun geht er auf einer anderen Seite, der Browser aber zeigt ... nichts, was denkt der Surfer? .....die Seite ist down...., oder sie gibt es nicht mehr und ist weg.

Er surft weiter und kommt auf die nächste Seite, die funktioniert! doch der Hauptcontent wie auch andere Sachen werden nicht angezeigt weil diese JS brauchen, was denkt er sich?
......hmm...hier gibt es doch garnichts....und ist auch weg.
</Bsp>

Seht Ihr hier das Problem? Ajax-Freaks sehen das Problem ganz klar nicht denn sowas kann für sie ja garnicht sein, sowas macht ja niemand - einfach JS zu deaktivieren. :D
 
Ein Beispiel das mir jetzt so einfallen würde wäre irgendeine Seite mit Anmeldung.
Der User klickt zB auf sein Profil und ändert bestimmte Daten.
Beim Absenden holst du seine aktuellen Daten aus einer Datenbank und erzeugst ein neues Objekt der Klasse User mit seinen Daten.
So hat der User dann schonmal seine Attribute bekommen.
Die Funktionen kannst du dann zB zum Updaten dieser Attribute nutzen (me.setUsername(...))

Natürlich kann man das auch ohne OOP lösen (ich würds auch ohne machen^^), aber man KANN das so machen wenn man will...

Außerdem gibts ja ein paar Tricks, dass man zB eine neue Seite in irgendeinem unsichtbaren Teil öffnet. Dann kannste da auch während der User zB nichts davon merkt wieder was mit PHP machen. Änderungen werden dann natürlich erst wieder nach einem reload der hauptseite sichtbar.
Allgemein würd ich sagen kann man mit PHP schon viel machen. Auf den Einsatz von OOP kann man oft verzichten, muss man aber nicht (teilweiße ist es tatsächlich auch wirklich sinnvoll, besonders bei riesigen Projekten).
Sobald sich aber auf der Seite was ändern soll ohne nen kompletten refresh, muss du noch andere Sachen als PHP beherrschen. (Was man zB häufig braucht ist ein Countdown oder eine refresh von nur einem div)
 
in PHP st es sinnvoll mit Klassen zu arbeiten sobald du viele daten zur verwalten hast, ein beispiel aus meinem aktuellen projekt.
Es geht um eine Firma die Personaldienstleistung anbietet. Dort muss man Kunden, Mitarbeiter, Gehälter, Rechnungen und Projekte veralten können.
Ich habe dort füt die einzelnen Objekte Klassen geschrieben die sich um das lesen und schreiben der Daten in der DB kümmern. Sprich, die Klasse Mitarbeiter stellt methoden zur verfügung um Daten von Mitarbeitern zu lesen, zu ändern und zu speichern. Diese werden dann in ein Modul eingebunden, dieses kümmert sich dann um die darstellung und aufhübschung der Daten. Meine Paradigma war dabei das jede Klasse (oder aber libary) für sich genommen unabhänig von den anderen Klassen funktioniert.
Ich habe mir auch eine Klasse für sämtliche SQL operationen geschrieben.
Der vorteil an diesem vorgehen ist, einmal geschrieben kann man die Klasse in jedem Mdul, wo sie benötigt wird, einbinden und kann sicher gehen das nur valide Daten in die Datenbank kommen, denn ungültige Angaben werden nicht akzeptiert. Bei ganz kritischen Fehlern schmeißt die Klasse eine Exception, zwingt mich also im Modul diese abzufangen und garantiert ein Fehlerfreies arbeiten (es sei denn man fängt sie nicht ab....), sodass der User nicht irgendwann vor einer halb fertigen Seite steht.
Außerdem kann ich so einfach die Klasse erweitern und muss das nicht überall wo ich eine ädnerung brauche manuel machen, da die änderungen anschließend global zur verfügung stehen, nur das Interface sollte sich beim ändern / erweitern einer klasse natürlich nicht ändern.
 
Belee schrieb:
Seht Ihr hier das Problem? Ajax-Freaks sehen das Problem ganz klar nicht denn sowas kann für sie ja garnicht sein, sowas macht ja niemand - einfach JS zu deaktivieren. :D
Das Zauberwort lautet: Progressive Enhancement and Graceful Degradation
Wenn JavaScript aktiviert ist, kann man es nutzen, ansonsten muss es eben auch ohne funktionieren.
Aber ganz auf JavaScript zu verzichten ist einfach eine Steinzeiteinstellung



Wegen OOP: Das Paradebeispiel sind MVC-Frameworks.
 
Wo habe ich gesagt das man ganz auf JS verzichten soll? es geht darum eine Seite nicht ganz abhängig von JS zu machen. :rolleyes:
 
ice-breaker schrieb:
Das Zauberwort lautet: Progressive Enhancement and Graceful Degradation
Wenn JavaScript aktiviert ist, kann man es nutzen, ansonsten muss es eben auch ohne funktionieren.
Aber ganz auf JavaScript zu verzichten ist einfach eine Steinzeiteinstellung



Wegen OOP: Das Paradebeispiel sind MVC-Frameworks.

Ahh MVC das mir das nich eingefallen ist xD Zu lange keine GUI programmierung mehr gemacht ^^

Aber ich denke zur JS geschichte: Die user wollen was vorn mir, also haben die sich mir annzupassen, wer JS aus hat und kein HTML5 Konformen Browser hat will ich gar nicht auf meiner seite haben.
 
Mercsen schrieb:
Ahh MVC das mir das nich eingefallen ist xD Zu lange keine GUI programmierung mehr gemacht ^^
hehe, hatte ich mich echt gewundert, dass noch niemand dieses Paradebeispiel brachte, denn MVC-Frameworks machen den Code wirklich deutlich strukturierter und sorgen für eine bessere Trennung von Design, Logik und Datenhaltung.

Mercsen schrieb:
Aber ich denke zur JS geschichte: Die user wollen was vorn mir, also haben die sich mir annzupassen, wer JS aus hat und kein HTML5 Konformen Browser hat will ich gar nicht auf meiner seite haben.
joa, ich sehe es mitlerweile auch halb so.
Meine Projekte sind zwar auch ohne JavaScript komplett nutzbar, aber wer JavaScript ausgeschaltet hat kommt eben nicht in den Genuss von Progressive Enhancement und wird an der einen oder anderen Ecke eventuell weniger Funktionen vorfinden, als jemand, der JavaScript aktiviert hat.
 
@Mercsen
Welcher Browser ist den HTML5 konform? soviel ich weiß noch garkeiner. Haut hier doch nicht solche Aussagen rein Leute. HTML5 ist noch garnicht fertig, wie also soll ein Browser dann konform sein?
http://www.w3schools.com/html5/html5_reference.asp
Hier kannst du nachschauen welcher Browser was jetzt schon kann, viel ist es nicht. Und fertig ist es auch noch lange nicht. Der einne kann das nicht der ander jenes, wenn du jetzt schon auf Teufel komm raus alles nutzt dann ist JS alleine nicht das einzige Problem auf deiner Seite.
 
Natürlich ist noch kein Browser HTML5 konform, weil es noch keinen festen HTML5 Standard gibt. Es kommt natürlich darauf an, was man von HTML5 nutzen möchte, die neuen Tags sind absolut kein Problem, da Browser, die Tags nicht kennen, trotzdem durch CSS-Stylen lassen, man verliert also nichts. Nur IE der IE bildet hier wieder eine Ausnahme, aber die kann man ihm mit html5shiv austreiben.
Die JavaScript-APIs aus HTML5 ist natürlich eine ganz andere Sache, wenn man sich aber mal caniuse.com ansieht, dann sieht man schon, dass die Verbreitung einiger Funktionen schon ziemlich weit ist. Man sollte natürlich nicht auf Teufel komm raus eine Funktion fordern, aber z.B. bei Datei-Uploads in Browsern die bereits XMLHttpRequest2 können, dies zu nutzen, gehört meiner Meinung nach zum guten Ton, wenn es die Usability deutlich steigert (Progressive Enhancement).
Und so kann man eben bei vielen Punkten weitermachen, nehmen wir nur runde Ecken mit CSS3: jahrelang musste man Grafiken nehmen, jetzt setzt man das Attribut eben und es wird in allen neuen Browsern genutzt, alte Zeigen eben an, aber es funktioniert (Graceful Degregation).


Die Technologie im Web ist keine Schwarz/Weiß-Geschichte, sondern ein Grau-Ton, wenn ein Feature bereits irgendwo implementiert ist kann man es auch nutzen, wenn man anderen Browsern äquivalente Dinge zur Verfügung stellt oder eben die Anwendung in einem Browsern damit "besser" ist. Aber diese Dinge nicht zu nutzen ist einfach fatal, damit suggeriert man den Browserherstellern, dass sie es nicht nötig haben, die neuen Funktionen zu implementieren, weil sie ja doch niemand nutzt.
Es ist eben ein Teufelskreis.
 
Du kannst nicht einen Browser jetzt dafür verantwortlich machen das er was aus HTML5 nicht kann wenn es HTML5 eigentlich noch garnicht gibt.
 
Mach ich doch auch nicht, ich setze jetzt schon auf HTML5, weil es eben geht. Und wenn es um erweiterte Features geht nutze ich sie, wenn der Browser sie unterstützt, man muss glücklich sein mit dem was man bekommt, und der Status für HTML5 könnte aktuell nicht besser sein, der Standard ist nicht einmal fertig und wird schon verdammt gut unterstützt.
 
Zurück
Oben