| 

.NET C# Java Javascript Exception

2
Hallo Leute,
ich hab hier und da immer wieder Projekte, die ich mit PHP umsetze. Bis jetzt sehen diese Projekt jedesmal nach Pfusch aus, da ich auf OOP verzichtet habe und daraus folgend viel Code ergibt. In wie weit macht es Sinn in PHP die OOP, im Bezug auf die Entwicklung eines minimalen CMSystems einzusetzen?

Hättet vielleicht eine schicke Seite, die den Einstieg in die OOP mit PHP erleichert. Bei mir scheiteret es schon an einem MySQL-User-System.

Vielen Dank

Spicejam
News:
18.12.2011
spicejam 853 2 6
3 Antworten
1
Hallo spicejam,

meiner Meinung nach kann dir OOP schon sehr dabei helfen ein übersichtliches System zu coden - Allerdings muss man sich ein paar Regeln bewusst sein, um den größten Nutzen aus OOP zu ziehen: Wiederverwendbarkeit ist zum Beispiel ein Punkt.

Wenn du von mehreren CMS Systemen redest und einem Benutzer-Login, dann wäre es doch praktisch wenn dieses System so entwickelt wird das du es in jedem deiner Projekte wieder benutzen kannst, oder?

Ich kann dir diese Seite empfehlen, auf ihr findest du mehrere Learning Videos die einen guten Einstieg in OOP mit PHP geben. Die ersten 3 Videos vermitteln vorallem den Vorteil von OOP gegenüber dem, was du bis jetzt gemacht hast. Sie sind eher theoretisch. Wenn du gleich mit den praktischen Videos anfangen möchtest, kannst du gleich bei dem 4. Video starten.

Auf den weiterführenden Seiten Object Oriented PHP for Beginners: Steps 1 - 5 und Object Oriented PHP for Beginners: Steps 6 - 11 wird Schritt für Schritt eine Klasse "Person" implementiert

Ich denke du könntest dieses Beispiel gut auf dein Mysql User System übertragen. Schließlich könnte eine Klasse Person ja auch "User" heißen, statt Person :) Die im Beispiel gezeigten variablen für Name könnte auch der Username aus der Datenbank sein. Und du könntest in deinem eigenem Constructor eine ID aus deiner User Tabelle übergeben, und die Klasse automatisch zusammen bauen lassen.

Ich könnte hier jetzt noch ein wenig Beispiel Code posten, aber ich traue dir zu das du auf deinem vorhandenem Wissen aufbauen kannst und meine kleinen Anregungen genügen :)

Ich hoffe ich konnte dir einen "Tritt" in die richtige Richtung geben und wünsche dir viel Spaß.

Grüße
18.12.2011
Nicolai Schönberg 2,4k 2 9
1
Verantwortlichkeiten in Klassen zu legen hat noch nie geschaden ;)
Schau mal hier: OOP mit PHP5

Statt alles selber zu coden solltest Du zumindest auch mal einen Blick auf die aktuellen PHP - Frameworks werfen. (z. B. Symfony 2, ...) Die setzten allerdings ein Verständnis von OOP voraus. Aus Deinem Posting geht nicht genau hervor, ob nur um den Einstieg in OOP "mit PHP" geht, oder grundsätzlich in die objektorientierte Programmierung.
19.12.2011
Xantiva 2,3k 2 9
1
Falls bei deiner Software sowieso eine neue Architektur ansteht, solltest du dir überlegen, ob SOA nicht die geeignetere Wahl ist, da viele Softwareentwickler OOP bereits für aussterbend erklären:
Suche: SOA PHP
SOA Way of Writing PHP

Edit:
Da es Missverständnisse zu SOA zu geben scheint, hier eine Seite, die SOA mit OOP vergleicht:
Service-Orientation vs. Object-Orientation: Understanding the Impedance Mismatch
Und hier die Zusammenfassung des Artikels:
Conclusion

Both object oriented and service-oriented design and develop techniques have their place in modern systems development. Object oriented systems fit well in a stateful environment while a service-oriented approach requires a stateless environment. There is nothing wrong with the strong object oriented approach as described at the start of this paper however it will not serve you well if you try and expose those object graphs through a service.

With years of OO experience it’s easy to fall into OO design by default, but when designing systems we need to shift our mindset and think about what we are designing for. If it’s an SOA system, a traditional OO approach may not be the best. The tight coupling will get you in trouble as you expand the reach and reuse of your services throughout your enterprise. Keep the interfaces into your services simple and focused and you will find that your services become much easier to manage and become much more scalable.

Daher wollte ich darauf hinweisen, falls ein Redesign ansteht, sollte man sich nicht von vornherein auf OOP festlegen, da meiner Meinung nach die Anforderungen immer mehr Richtung SOA gehen.
19.12.2011
Jürgen Luhr 7,1k 2 9
Ok, und wie werden die Services implementiert? Komplett ohne Klassen, Objekte, etc.?
Xantiva 19.12.2011
@Xantiva: Wieso ohne Klassen, Objekte ...?
SOA heißt nicht, dass es keine Objekte gibt, aber der Umgang der Objekte ist bei SOA grundverschieden als mit OOP.
Jürgen Luhr 19.12.2011
@Jürgen: "der Umgang der Objekte ist bei SOA grundverschieden"
Ja, sicherlich auf der Ebene der Services. Aber innerhalb eines solchen Services kann alles OOP sein, oder?
Xantiva 19.12.2011
@Xantiva: Ich persönlich verzichte auf OOP auch innerhalb des Services. Nachteile habe ich keine. Vorteile ist eine einfache Entkopplung der Schichten. In der Microsoftwelt nenne ich mal das Stichwort MEF für eine einfache Austauschbarkeit des DataAccessLayers.
Soweit es geht verzichte ich auf eine starre Verbindung der Schichten und da kommt mir SOA sehr gelegen.
Jürgen Luhr 19.12.2011
@Xantiva: Gerade auf der Ebene des Services ist das Prinzip von SOA gewünscht --> stateless
Jürgen Luhr 19.12.2011
@Jürgen: ok, danke!
Xantiva 19.12.2011
Es gab letzte Woche eine kostenlose Broschüre über das SOA Manifest. http://www.dpunkt.de/advent.php Allerdings war das letzte Woche - Wenn ich wüsste das ich kein Ärger bekomme wenn ich es share würd ich es hier bereitstellen.
Nicolai Schönberg 19.12.2011
@Xantiva: gerne :)
@Nicolai: Ich würde es nicht riskieren ;)
@Marvin: Thema Kaffeeküche: OOP vs SOA. Mich würden weitere Meinungen interessieren.
Jürgen Luhr 19.12.2011
@Nicolai: das würde ich auch nicht riskieren. Aber für alle, die es interessiert:
http://www.soa-manifest.de/

und

http://www.josuttis.de/soa-manifest/soa-manifest.html
Matthias Hlawatsch 19.12.2011

Stelle deine Php-Frage jetzt!