Logischer Aufbau einer Webseite bei OOP

  • Ich dreh noch durch!
    Ich kommt nicht dahinter, wie man den Grundaufbau logsich und für andere verständlich aufbaut. (für andere, da sich der eigene code ja imemr einfach lesen lässt)


    Ich hab die wichtigsten Sachen in Klassen gepackt, wie zB SQL, Logfiles, Multilanguage-Klasse ect ect.
    Aber immer wenn ich versuhe die alle zu "verbinden" bekomm ich Kopfkrampf und lösche wieder alles.


    Hab ihr einen bestimmten Aufbau, oder kennt ihr gute Seiten im Netz dazu?

  • Hehe, was die da haben ist das, was ich gerade am schreiben bin :D
    Allerdings nicht so "riesig". Sicher - was die da haben ist klasse, aber zu viel.
    (nicht verkehrt übrigens, dass man da auch responsive designs bekommt (für Geld))


    Was ich suche ist die Anordnung der Klassen ect.
    Ich hab versucht alle Klassen so weit wie möglich von einander unabhängig zu schreiben. Aber irgentwie kommt man immer an nen Punkt, wo man doch die eine Klasse in der anderen nutzen muss.
    Daher der Gedanke - eine "Haupt Klasse" mit allem drin: error logging, user error erstellen, ect. Aber des haut nicht hin, ... ich kannst nicht mal beschreiben :D
    (ich glaub ich muss mal was anderes außer php machen :D )

  • Das Konzept von Klassen schließt sowas ja auch nicht aus, es ist ja eher die Idee.
    Klassen möglichst als Einheit schreiben und dann sinnvoll einbinden.
    Probier es mit Java - machen wir gerade in der Uni und danach weißt du wirklich wie du mit Klassen sinnvoll umgehst (meistens) ;)

  • Das beruhigt =)
    Gits denn Regeln wie man dann die Eigenschaften von anderen Klassen nutzt, wenn man sie nicht miteinander vererben kann?


    Und mir ist grad was aufgefallen - eine Klasse schreibt man möglichst immer als static, außer wenn man mehrere Objecte (Bsp "Auto") davon braucht - richtig?

  • Halt so dass es Sinn macht.. ich kann dir gerne unser Skript schicken, wenns dir hilft ;)
    Naja.. eigentlich nicht.. außerdem sind static in der Regel die Methoden, nicht die klassen ;)

  • Naja, ich sehe irgentwie die Ganze Klasse als static ;D
    Aber klar, hab schon festgestellt, dass man ja von ner "static" :D Klasse auch ein Object erzeugen kann.


    Was ich an static aber gut finde ist, dass man es überall nutzen kann. Du brauchst das Object in anderen Methoden nicht global setzen oder mit reinschicken.
    Kannst das script ja mal schicken. Abgucken/Nachmachen ist ja nix anderes als Lernen =)

  • Würde das Thema ganz gerne nochmal aufgreifen.
    Witzig: beim googlen auf diesen, meinen eigenen, Thread gestoßen :D


    Ich frag mich immernoch wie ich verschiedene Klassen zusammen bringen soll.
    Was mich dabei verrückt macht ist ein Blog o.ä. den ich mal gelesen hab. Darin ging es um Nutzung verschiedener Funktionen und Klassen ohne die Beziehungen ect dabei zu "verschleiern" aber trotzdem keine Redundanz im Code entstehen zu lassen.


    Das mach mich mitlerweile so verrückt, dass ich mit meinem eigtl simplen mini-CMS nicht mehr weiter komme :D


    Kurzes einfaches Bsp:
    Ich habe eine Klasse "Sql", welche alles per PDO(prepared statements) klärt.
    Dann noch eine Klasse "Timer", welche per ::start()/::stop() die Zeit gegebener Komponenten misst.


    Nun möchte ich in der Klasse "Sql" die Zeit der db-Aktionen mitschreiben lassen. Ist auch ganz simpel:
    starten: Timer::start('sql_titel_bla')
    stoppen: Timer::stop('sql_titel_bla')


    Aber jetzt kommts: wo setze ich richtig an?
    Nutze ich die Klasse "Timer" Innerhalb der Klasse "Sql", oder außerhalb?
    Innerhalb:

    PHP
    public static function query(...)
    {
     Timer::start('sql_titel_bla') 
     $dbh->execute() .....
     while(....){}
     Timer::stop('sql_titel_bla') 
    }


    außerhalb:


    Um "Umwege" wie zB beim 2ten Bsp zu vermeiden würde ich auf erteres tippen.
    Allerdings ist Klasse "Sql" damit von Klasse "Timer" abhängig.


    Wie wirds gemacht? =)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!