Warum/Wann OOP?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Warum/Wann OOP?

    Hallo,

    ich hoffe ich darf die Frage hier in dem Unterforum stellen.
    Warum bzw. wann sollte ich OOP einsetzen? Macht es wirklich Sinn auch die kleinste Funktion abzuändern und diese in eine Art Klassencontainer "reinzuschmeißen" zusammen mit anderen kleinen Funktionen? Oder ist es besser die Funktionen zu behalten? Ist es unprofessionell nicht mit OOP zu arbeiten? Warum sollte ich es überhaupt einsetzen? Ich habe mir alles in PHP selbst beigebracht und fühle mich beim programmieren irgendwie immer so unprofessionell. Ich meine.... Die Skripts funktionieren und ich bin mir ziemlich sicher das diese auch einem gewissen Sicherheitsstandard entsprechen. Aber in die OOP habe ich mich noch nicht so eingelesen. Ist das sehr Wichtig?
  • Hi,

    das ist schwer zu sagen bei php, weil der oop Teil einfach nur angefangen mit php 4 rein implementiert wurde und es kein Muss ist.
    Ich sage einfach mal, dass es best practive ist und viele Dinge müsstest du so programmieren, dass sie´für dich keinen Sinn Ergeben, weil es standards sind, man sie aber immer umgehen könnte.
    Um da wirklich hinter zu kommen würde ich eine reine objektorieterte Programmierssprache lernen oder dir ein php Framework schnappen.

    Ob es Sinn macht, sollte im Einzelfall entschieden werden und ich würde dir einen weiterführennden Link geben.

    peterkropff.de/site/php/oop.htm

    OOP - Der Stein der Weisen?
    Nein! Nicht Alles, was man programmieren kann, muss objektorientiert sein. Für ganz spezielle Aufgaben ist die normale prozedurale Vorgehensweise oft einfacher, besser und schneller. Die Feinheiten werdet ihr im Laufe der Zeit selber kennen lernen.
  • Okay danke das hat mir sehr geholfen. Peter Kropff kenne ich übrigens schon, da ich in PHP-Resource auch unterwegs bin :D
    Ich hatte ohnehin vor mich an Java ranzumachen .... Aber das gehört hier nicht her.
    Ich will ja nicht sagen das OOP für mich ein großes Problem darstellt. Ich kanns ja so mehr oder weniger:

    Quellcode

    1. class mysql {
    2. private $mysql_host = "localhost";
    3. private $mysql_user = "root";
    4. private $mysql_pass = "";
    5. private $mysql_data = "meinedb";
    6. function __construct() {
    7. $this->con = mysql_connect($this->mysql_host, $this->mysql_user, $this->mysql_pass);
    8. $this->db = mysql_select_db($this->mysql_data, $this->con);
    9. }
    10. function __destruct() {
    11. mysql_close($this->con);
    12. }
    13. }
    Alles anzeigen


    Also sowas krieg ich schon hin^^ hab auch schonmal ein einfaches Templastesystem in der Art geschrieben... obwohl ich als Templatesystem lieber Smarty nutze und anstatt oben gegebenen Code lieber PDO.
    Aber sowas wie das WBB3 was ja fast komplett OOP ist... Da steig ich dann einfach nichtmehr durch :D

    Da heißt es wohl nur üben,üben,üben...
  • An sich muss das jeder für sich selbst entscheiden. IMHO gibts zwei Faktoren:
    1. Wie groß wird das Projekt?
    2. Wie viele Leute arbeiten mit?

    Wenn du ein kleines Projekt (klein = 0-1000 Zeilen Code oder so) programmierst und Wert auf Schnelligkeit legst, ist es nicht sinnvoll OOP einzusetzen.
    Bei mittleren Projekten (mittel = 1000-3000 oder so, kann man schlecht einschätzen), ist es vermutlich sinnvoll einige selbstgeschriebene Klassen zB. für MySQL, Design usw. einzusetzen.
    Bei großen Projekten würde ich eh ein Framework wie Zend oder Code Igniter empfehlen.

    Es kommt aber auch auf die Anzahl der Mitarbeiter an. Wenn du und ein Freund für ein Wochenende eine Website programmiert, immer nebeneinander sitzt/online seid, so dass ihr euch immer helfen könnt, muss bei kleinen Projekten kein OOP sein (auch wegen der Entwicklungszeit/Schnelligkeit des Codes (PHP ist und bleibt auch mit OOP eine Interpretersprache)). Doch schon bei mittleren Projekten mit mehreren Leuten, die ja bei Fragen über den Aufbau evt. nicht immer dabei sind, sollte man auf jeden Fall mit OOP arbeiten, da dann auch der Code einem ähnlicherem Schema folgt.

    Joa, jedenfalls denke ich so über OOP. Einige PHPler haben scheinbar vergessen, dass es bei OOP darum geht, den Code lesbarer und wartbarer zu machen, und man nicht OOP um OOPs-Willen programmiert ;)
    Aber da muss jeder selbst abwägen...
  • OOP ist super. So viel vorweg.

    OOP erlaubt einfach Strukturen die du mit Funktionen nicht alleine hinbekommst. Nehmen wir ausgedachtes Beispiel:

    $_hasChildrens = $carChop->getMitarbeiter()->get(1)->getFamily()->getHasChildren();

    Wenn du eine saubere und am besten 100%ige Objektstruktur besitzt ist sowas immer möglich, und vorallem es ist erweiterbar.

    Bei jedem Projekt welches größer ist, solltest du auf keinen Fall drauf verzichten, ich empfehle da ein Framework wie PRADO...

    Wie die Vorgänger gesagt haben, macht es bei kleinen Projekten kaum Sinn. Man kann das einfach an der Enticklungsgeschwindigkeit festlegen:

    Entwickelst du einfach drauf los, mit Funktionen und vll hier und da einem Objekt wirst du in kurzer Zeit schon viel Erfolg haben, nach einer Weile (2 Wochen) wirst du aber nicht mehr so explosionsartig vorankommen, bis das Projekt irgendwann unflexibel wird und man es nur noch mit viel Aufwand erweitern kann.

    Baust du alles mit OOP gehen die ersten Tage alleine in die Planung deiner Objektstrukturen flöten, dafür wirst du ab einem gewissen Punkt sehr schnell damit entwickeln können da es sehr flexibel wird.

    Okay wenn du von Anfang an ein Framework nutzt kannst du auch mit OOP in kurzer Zeit Erfolg haben, doch lohnt sich ein aufwendiges Framework meisten nicht für kleine Projekte!
  • keksnicoh schrieb:

    Okay wenn du von Anfang an ein Framework nutzt kannst du auch mit OOP in kurzer Zeit Erfolg haben, doch lohnt sich ein aufwendiges Framework meisten nicht für kleine Projekte!


    klein ist ja immer relativ, aber ich nutze auch bei kleinen Projekten das Zend Framework, da alles wiederverwendbar ist, was ja auch ein riesen Voorteil vom OOP ist.