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.
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.
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ß.
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.
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
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.
@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: "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: 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.
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.