Objektorientierte Programmierung anhand PHP OOP Praxisbeispiel


OOP ist auch in der heutigen Zeit noch total gruselig, gerade für PHP-Entwickler. Das ist in der Tatsache begründet, dass PHP ursprünglich mal dazu geschaffen wurde, "schnell mal was dynamisches" zu realisieren. PHP ist schnell zu erlernen und man muss jetzt nicht wahnsinnig gut sein, um damit Projekte zu realisieren. Mit den einfachsten mysql_connect-Befehlen und einigen SQL-Queries hat man innerhalb weniger Minuten ein komplettes Gästebuch programmiert. Von Sicherheit rede ich hier jetzt mal gar nicht.

Grundsätzlich verurteile ich diese Art zu coden übrigens nicht. So lange jemand weiß, was er da verzapft hat, soll er soviel Spaghetticode schreiben, wie er mag. Aber MICH muss der Spaghetticoder dann besser in Ruhe lassen, denn lesbar ist so'n Frickelcode nicht. So lange es funktioniert, ist das auch egal. ;)

Dennoch erlaubt PHP ja durchaus mittlerweile Objektorientierte Programmierung. Das ist für die meisten Leute immer noch ein Buch mit sieben Siegeln. Und tatsächlich erklären alle Codehandbücher und Tutorials OOP immer mit irgendwelchen Beispielen wie sowas hier:

weiter...

Womit bearbeitet man seinen Blog und programmiert


Immer wieder zeigen euch PHP-Coder, wie sie Lösungen für ihre Probleme finden. Es gibt jede Menge Codebeispiele. Man findet für fast jedes Codingproblem irgendwo eine Lösung. Damit werde ich in diesem Post jetzt allerdings nicht dienen. Ich zeige euch heute nur, was ich für Tools nutze, um zu coden und erkläre, warum ich diese Tools benutze.

Das Betriebssystem meiner Wahl ist aktuell Ubuntustudio. Ich werde allerdings beizeiten auf Debian wechseln, da mir die Releasepolitik von Ubuntu nicht zusagt und ich mittlerweile in dem OS sicher genug bin, um auf viele Tools aus dem Ubuntu-Repository verzichten zu können. Meine Linuxkenntnisse reichen mittlerweile für die komplette Administration aus und ich habe auch diverse Male nun unter Ubuntu irgendwelche Sachen selbst kompiliert, weil diese in den Ubuntuquellen einfach nicht vorhanden sind. Nicht zuletzt mag ich XFCE als Windowmanager sehr gerne aber ein "normales" Gnome ohne Schnickschnack kriegt man wesentlich einfacher bei Debian mit installiert.

Die Datenbank meiner Wahl ist MariaDB. MariaDB ist ein Fork von MySQL und weitestgehend kompatibel zu dem System. Bekannterweise hat Oracle MySQL ja damals gekauft... und deren Releasepolitik ist eher speziell. MariaDB kann alles, was MySQL auch kann und hat in den meisten Linux-Distributionen MySQL bereits ersetzt. Auch Wikipedia nutzt als Backend mittlerweile MariaDB.

An Oracle ist aber ja nicht alles schlecht. Die IDE meiner Wahl ist Netbeans. Ich habe diverse andere IDEs ausprobiert, sei es unter Windows PHPDesigner und crossplattform-mäßig auch APTANA-Studio und Eclipse aber mir persönlich kommt Netbeans am meisten entgegen. Ich mag die Projektansichten, die "hops" zu den Definitionen und die Geschwindigkeit. Auch das Autocompleting kommt mir sehr entgegen, da es nicht penetrant nervig ist. Das "Format-Source" schreibt den Code auch genau so, wie ich ihn normalerweise setzen würde.

Da mein Framework auf Smarty-Templates setzt, kommt mir sehr entgegen, dass Netbeans diese Templates direkt unterstützt und sogar hier einigermaßen saubere Codevorschläge macht. Im Office selbst schreibe ich den einen oder anderen Webservice, da brauche ich schnelles Prototyping. Bei Netbeans kann ich direkt die WSDL des Webservices laden und das Teil baut mir schon einfache PHP-Funktionen.

Netbeans
Netbeans

Die Bilder hier werden in der Regel mit Krita bearbeitet. Gimp nutze ich verdammt selten, da ich eigentlich immer nur zuschneiden und skalieren muss. Das funktioniert mit Krita ebenso schnell wie mit Irfanview und ich mag die GUI von Krita sehr gerne.

Krita
Krita

Unverzichtbar für die Entwicklung ist neben den ganzen Erschaffungstools natürlich noch eine Möglichkeit, den Kram optisch zu debuggen. Dafür bietet sich Firefox in Kombination mit Firebug an. Mittlerweile haben alle Browser sowas ähnliches wie Firebug zwar schon integriert, aber ich bin da eigen: Ich habe das damals so genutzt und werde das auch in Zukunft so nutzen. Mit Firebug klicke ich mich zu den entsprechenden DIV-Containern, die nicht so aussehen, wie sie sollten und frickel mir die dann zurecht. Anschließend wird das zurecht-gefrickelte CSS in den normalen Code übernommen. Performance-Bremsen finde ich in der Regel auch über die Geschwindigkeitsmessung von Firebug.

Firebug

Ich hoffe, mein Ausflug in die Tüftelecke hat euch gefallen und jetzt bin ich gespannt: Was nutzt ihr so?

Der Mond als Diskokugel


Die Jungs und Mädels von Vsauce nehmen abstruse wissenschaftliche Ideen und analysieren diverse "was-wäre-wenn"-Szenarios auf sehr unterhaltsame Weise. Was wäre denn, wenn der Mond eine große, dicke Diskokugel wäre? Sicherlich würden die Sonnenuntergänge und die Mondaufgänge wesentlich spannender aussehen, als sie es jetzt tun.

Discomoon weiter...

Pixar ist wieder da und dieses mal Inside Out


Pixar war bis Monster University oder die unsäglichen Cars-Filme das beste erzählende Filmstudio aller Zeiten. Und dann kamen die komischen Sequels und tatsächlich hat Disney mit Frozen (fast) einen besseren Film abgeliefert, als Pixar zuletzt. Aber es gibt Hoffnung! Der neue Trailer aus dem Hause Pixar vom Film INSIDE OUT sieht richtig gut aus und offensichtlich hat Pixar endlich wieder die STORY in den Vordergrund gestellt. Ich liebe diesen Trailer und werde den Film lieben.

Die Prämisse ist wohl, wie es im Kopf von den Leuten so aussieht. Wenn es so aussieht, wird der Film sowas von geguckt. Saulustig!


YT DirektPixar

via IO9

Werbung

Newsletter

Einmal pro Monat gibt es einen Newsletter mit allen neuen Postings.

Bildnachweise

Bildmaterial und Videos nutze ich ausschließlich zu Promotionszwecken. Sollten hier Zweifel an der Rechtmäßigkeit des verwendeten Materials aufkommen, bitte ich um eine kurze Benachrichtigung. Das beanstandete Material wird dann sofort entfernt.

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91