kostenloser Webspace werbefrei: lima-city


Konzeptphase und Datei-Infrastruktur

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dumb

    dumb hat kostenlosen Webspace.

    Hallo,

    also hinter der intuitiv-selbsterklärenden Überschrift verbirgt sich folgendes:
    Ich habe mal aus interesse ein Forum geschrieben, wobei ich gleich am Anfang mit folgendem Problem konfrontiert war. Wie manage ich den Informationsaustausch zwischen Dateien? Im Rahmen meiner Ausbildung hat mir mein MySQL Tutor erzählt, dass eine Mögliche Variante eine art Universaldatei sei.

    Die Funktionsweise der Universaldatei:
    Alle Formulare befinden sich in der einen Datei (zb.: index) und auch die Auswertung und Weiterverarbeitung der Eingaben findet hier statt. Das ganze habe ich in 2 Wegen gegliedert: Aktion und Verfahren. Durch jede menge If-Abfragen kommt der User zuerst in eine Auswahl was er denn machen möchte, dadurch wird beim absenden durch ein hidden-feld im Formular das Verfahren an die selbe Datei geschickt. Wurde dann im Verfahren das Formular ausgefüllt, werden die Werte wieder an sich selbst geschickt mit einem weiteren hidden-feld, welches die dazugehörige Aktion beim laden der Datei aktiviert, was die Verarbeitung zur folge hat. Das Problem war aber, dass man häufig vorkommende Sachen immer wieder in den Code kopieren musste und außerdem verliert man selber da schnell den Überblick. Das Forum hab ich aber trotzdem auf diesem Weg noch hinbekommen.

    Danach hab ich mir ein paar Gedanken gemacht, weil das so nicht der Sinn der Sache sein kann und ich hab mir was von meinen Kollegen abgeguckt: viele kleine Dateien mit Spezialfunktionen.

    Die Funktionsweise vieler Dateien:
    Im Prinzip ist es einfach, für jede Funktion wird eine für diese Funktion ausgelegte Datei geschrieben und an jedem Punkt, wo sie benötigt wird, per include eingefügt. Wird zum Beispiel ein Formular ausgefüllt, wird es an eine ausgabelose Datei geschickt, die ihr Werk verrichtet und sofort weiterleitet so dass man davon eigentlich nichts mitkriegt. An sich die bessere Methode, aber auch hier wirds schnell unübersichtlich, da man den ganzen Code nicht auf einmal überblickt und bei Notepad++ quillt die tableiste auch schon über. Dadurch muss man oft zwischen den Dateien hin und her switchen um zu gucken, was die denn nochmal machen und was für Werte die Zurückgeben und sobald man das herausgefunden hat, hat man schon vergessen, wofür man das überhaupt wissen sollte.

    Was mich nun interessiert ist, ob es da irgendwo im Internet Lektüre gibt, wie man am besten an solche Sachen herangeht, also eine Art Leitfaden. Bin ich mit meinen Methoden ganz aufm Holzweg oder macht ihr das genauso? Vielleicht hat einer von euch eine ganz andere herangehensweise - ich bin auf jedenfall gespannt. Im Moment sitze ich an meinem dritten "Projekt" und habe meiner Meinung nach einen guten Kompromiss zwischen den beiden Methoden gefunden.

    P.S.: Ich habe bei der Abstimmung bewusst kein Mittelding mit reingenommen, was zählt ist die Tendenz, wozu man eher neigt.

    Beitrag zuletzt geändert: 11.5.2009 17:12:38 von dumb

    Abstimmung (Nur eine Auswahl möglich)

    Viele kleine Dateien mit Spezialfunktionen
    60 % (3 Stimmen)
    Eine bzw. wenige universelle Dateien
    40 % (2 Stimmen)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,

    ich würde das ganz anders angehen. Das Stichwort heißt Objektorientierung (=OOP).

    Du schreibst dir verschiedene Klassen und deren Methoden. Pro Klasse eine Datei. Wenn du jetzt eine Klasse im Code benötigst machst du das so:

    <?php
    include("mitglied.class.php");
    
    $mitglied = new mitglied();
    $mitglied->updateName("Prog");
    
    ?>


    So musst du keinen Redundanten Code schreiben, und kannst dieses Verfahren überall verwenden. Wichtig nur: Immer die passende Klasse importieren.

    mfg,
    Prog
  4. Also, obig listest du wirklich nur die beiden extremfälle: eine datei vs 100 dateien.

    Man muss das ganze möglichst logisch gestalten. Eine Datei ist auf jeden fall falsch, ebenso wie zu viele Seiten.
    Man muss wissen, wie man die Funktionen in logischen Blöcken zusammenfassen kann. Viele Funktionen sind voneinander abhängig und das kann man nutzen.

    Objektorientierung mit selbiger Struktur ist auch möglich. Es häntg halt alles vom verwendungszweck ab. Nicht immer ist OOP gut, nicht immer sind es die Funktionen.
  5. Ganz wichtig ist immer eins: Den Überblick zu behalten.



    Das heist: Du speicherst nicht in jeder Datei die Funktionen, die du dort brauchst, sondern alle Funktionen des gesamten Projekts in einer einzigen Datei. Jetzt hat man aber das Problem, dass man auf einer Seite 10 Zeilen eingeben soll, und auf einer anderen nur 2.


    Jetzt gibt es wieder verschiedene Möglichkeiten:

    1. Schreibe für alles eine eigene Funktion
    2. Mache Optionale Parameter
    3. Mache 2 Parameter, einen für den Namen das Datenbanktabelle, einen für den was reinkommt. Das was reinkommt steht in einem Array, der Array-Schlüssel ist der Name der Tabellenspalte, der Array-Inhalt ist der Inhalt der in die Tabellen-Zelle soll. In der Funktion macht du eine foreach-Schleife um an Schlüssel und Inhalt zu kommen, dann sendest du mit Hilfe dieser Informationen den Datenbankbefehl.


    Da ich die 3. Möglichkeit ausführlich erklärt habe ist warscheinlich schon zu erahnen dass ich dir diese empfehle, da es für den Anfang leicht zu verstehen ist.


    Auserdem musst du es hinbekommen nicht alles in eine Funktion zu schreiben, sondern in Funktionen hauptsächlich andere Funktionen zusammen zu fassen.





    mfg drafed-map



    mfg Christoph Michelbach
  6. Autor dieses Themas

    dumb

    dumb hat kostenlosen Webspace.

    Erstmal vielen dank für eure Antworten, auch wenn sie mich nicht mit Freude erfüllen, denn jetzt merke ich, dass es doch eine etwas größere Baustelle ist. Statt meine denkweise anzupassen, müsste ich auch meine Art zu "programmieren" ändern und dafür muss man sich ordentlich reinhängen.

    Zu den Auswalhmöglichkeiten:
    Hätte ich ein Mittelding mit reingenommen, dann würden wohl die meisten dieses auswählen, da es am logischsten ist. So wie ich das sehe, wenden viele ( die Rede ist von denen, die ich kenne ) auch ein Mittelding an, bloß eben mit einer Tendenz. Der eine hat eine "Masterdatei" die ab und zu kleine dateien abruft z.B.: verbindung mit Datenbank herstellen, Session-Check usw. und der andere hat keine priorisierte Datei und verwaltet es durch "schieberei".
    Andere Möglichkeiten, die ich nicht kenne, konnte ich nicht zur Auswahl stellen ... ich wollte noch "Eine andere Methode" als auswahl dazueditieren aber entweder geht es nicht, oder ich hab nicht gefunden wo man weitere Auswahlmöglichkeiten dazueditieren kann.

    So wie ich das jetzt interpretiere, ist meine bisherige herangehensweise eher statisch und das wollte ich auch ändern, bloß ich wusste nicht wie, deshalb auch der Thread. Den Gedanken, alles irgendwie universell sich-selbst-zusammenbauend zu machen hatte ich auch, bloß da erschien mir der Aufwand nicht in Relation zum Ergebnis und vorallem nicht zu meinem Kenntnisstand. Denn wenn man den für sich schwersten Code schreibt, ist man im nachhinein zu dumm ihn zu debuggen.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!