[PHP]Funktionen Einbinden?

  • Moin Leute. Also, ich hab folgende Situation: eine Session datei mit verschiedenen Funktionen und Variablen. Da die Datei allerdings ziemlich groß geworden ist würde ich die gerne bisschen aufräumen und deshalb die Frage ob man diese ganzen Funktionen in einzelne Datein in einem Unterverzeichnis Speichern und mit Include wieder Einbinden kann?

    Das ganze ist in oop geschrieben und die Funktionen sind natürlich in einer Klasse, bin jetzt nicht so der überprogrammierer und hab mir da was zusammengebastelt und bevor ich jetzt alles umräume hoffe ich einfach mal das mir grad wer ne Antwort darauf geben kann.

    [CENTER]ISYMFS[/CENTER]

  • Also ich hab ne session.php die ich in die nötigen anderen Datein Einbinde. In dieser befindet sich etwa diese struktur:

    Dazu gehören natürlich noch diverse Form und Datenbank datein, aber mir gehts ja um die Einbindung in extrenen Datein gespeicherten Funktionen. In diesem Beispiel die Funktionen 'a', 'b' und 'usw'.

    Groß ist sie um die 600 Zeilen, aber da es noch viele mehr werden wollte ich das mit dem Organisieren jetzt schon mal erledigen bevor es richtig viel Arbeit wird.

    [CENTER]ISYMFS[/CENTER]

  • Es ist an sich der Klasse doch völlig egal ob du 100 Zeilen hast oder 2000. Viel mehr solltest du einfach vermeiden Code an diversen Stellen doppelt zuschreiben. Ob du einen merklichen Performance Verlust zwischen 6000 Zeilen Code oder 5x include/require hast, mag ich an dieser Stelle zu bezweifeln

    Aber poste doch einfach mal deine gesamte Klasse, dann könnte man dir weitaus mehr helfen.

    Denn vielleicht ist deine Klasse ja kürzbar in diversen Punkten. Aber alles in allem ist es in meinen Augen völlig egal ob 100 oder 1000 Zeilen Code.

    Lieben Gruß

  • Ne es geht mir nicht um die Geschwindigkeit mit der die Seite letzendlich im Browser läd, sondern um die Übersicht für mich selbst beim Programmieren.

    [CENTER]ISYMFS[/CENTER]

  • Was hat die Klasse mit Datenbanken und Formularen zu tun, wenn sie sich um die Session kümmert? Das können doch andere Klassen übernehmen, oder?

  • Mein Vorschlag ist immer noch, poste deine Klasse, dann schauen wir es uns an und können helfen. Denn Sorry meine Glaskugel habe ich vor 10 Minuten in den Schrank gestellt ;)

  • Ich kann die Klasse nicht Posten, das muss auch so gehen, weils im Grunde etwas Allgemeines ist. ^^

    Klar habe ich eine andere Datei mit Klasse für die Datenbank Funktionen. Klar habe ich eine andere Datei für die Formulare. Mit Form meinte ich eine selbstbestimmte Form um das ganze einfacher zu Programmieren, aber wenn ich jetzt darauf eingehe kann ich gleichn Tutorial über meine Dateistruktur schreiben. :P

    Ich bin wirklich froh das ihr mir helfen wollt aber ich brauche im Grunde nur eine Antwort auf die Frage: Wie binde ich den Code von in externen Datein befindliche Funktionen in eine Klasse ein?

    Und wenn man das so nicht versteht dann hier mal ein ganz anderer Ansatz: Wenn ich Include verwende, wird dann beim abarbeiten der Datei im Browser der Include Befehl durch den Code ersetzt auf den sich das Include bezieht, oder muss ich eine Funktion erstellen in der sich ein Include mit verweis auf den Inhalt der Funktion befindet?

    [CENTER]ISYMFS[/CENTER]

  • PHP: include - Manual

    Was ich immer nie verstehen kann, alle wollen hilfe aber keine postet seinen Code. Warum eigentlich? Habt ihr angst das den jemand klaut? Oder schreibt ihr an so geheimen Staatsdateien das die keiner sehen darf und ihr mit eurem Leben bezahlen müsst wenn auch nur 1 Zeile davon public wird?

    Man man man so ein Kindergarten.....

    Ich könnte dir noch mehr sachen um die Ohren hauen welche dir bei deinem Problem vielleicht helfen könnten, aber ich denke das macht keinen Sinn bei solch einem geheimen Projekt.... /ironieoff

  • Warum konkreten Code posten wenns nicht nötig ist? Ich hab ne Idee und setze sie um, sollte etwas daraus werden wärs fürn Arsch wenn der ganze Code public wär.

    PHP Manual hab ich schon geguckt allerdings wird meine Frage dort nicht konkret genug beantwortet. Bevor wir hier jetzt noch paar Stunden rum Diskutieren nehm ich mir die Zeit und probier die Möglichkeiten durch. Trotz allem danke fürs Mitdenken.

    [CENTER]ISYMFS[/CENTER]

  • Zitat von Assoult;320841

    Warum konkreten Code posten wenns nicht nötig ist? Ich hab ne Idee und setze sie um, sollte etwas daraus werden wärs fürn Arsch wenn der ganze Code public wär.

    Wegen einer Klasse? Und dann auch noch ne Session Klasse? Oh man du musst auch denken das bei dir hinten nur Goldbarren rauskommen oder?

  • Zitat

    Ich bin wirklich froh das ihr mir helfen wollt aber ich brauche im Grunde nur eine Antwort auf die Frage: Wie binde ich den Code von in externen Datein befindliche Funktionen in eine Klasse ein?


    Ok, dann: Keine Ahnung ob das geht, es ist aber auch ein falscher Weg, um für eine bessere Struktur zu sorgen (bzw. mehr Übersicht). Es ist IMHO unüblich, unnötig und hässlich.

    (Halt, warte: Schau dir mal Traits an. Damit sollte es gehen. Ist aber trotzdem hässlich und falsch)

  • Zitat

    Wegen einer Klasse? Und dann auch noch ne Session Klasse? Oh man du musst auch denken das bei dir hinten nur Goldbarren rauskommen oder?


    Du hast doch keine Ahnung was sich aus der Klasse für Informationen und Rückschlüsse auf andere Dateistrukturen schließen lassen. Hab oft genug Goldbarren geschissen, und selbst wenn das ganze nichts wird geh ich lieber auf Nummer sicher. Keine Ahnung warum du dich so drauf aufhängst. Wenn du deine Codes posten willst -> mach es, aber mach mich nich an. Und jetzt sei nicht beleidigt weil du nicht helfen konntest, kannst ja nich alles wissen. Ende.

    Zitat

    Ok, dann: Keine Ahnung ob das geht, es ist aber auch ein falscher Weg, um für eine bessere Struktur zu sorgen (bzw. mehr Übersicht). Es ist IMHO unüblich, unnötig und hässlich.

    (Halt, warte: Schau dir mal Traits an. Damit sollte es gehen. Ist aber trotzdem hässlich und falsch)

    Das ganze muss so ja nicht hochgeladen werden, wenn du eine bessere Lösung hast wär ich sehr froh.

    [CENTER]ISYMFS[/CENTER]

  • Zitat von Assoult;320845

    Du hast doch keine Ahnung was sich aus der Klasse für Informationen und Rückschlüsse auf andere Dateistrukturen schließen lassen. Hab oft genug Goldbarren geschissen, und selbst wenn das ganze nichts wird geh ich lieber auf Nummer sicher. Keine Ahnung warum du dich so drauf aufhängst. Wenn du deine Codes posten willst -> mach es, aber mach mich nich an. Und jetzt sei nicht beleidigt weil du nicht helfen konntest, kannst ja nich alles wissen. Ende.

    Was heißt nicht helfen konnte, ich kann dir ganz sicher helfen. Denn das was du machen willst ist das 1x1 in PHP.
    Benutze doch einfach die mit PHP 5.3 eingeführten Namespaces.

    Dann musst du dir nur noch einen Autoloader basteln der auf diese Namespaces reagiert und dir deinen Klassen nachlädt. Und schon haste eine saubere Trennung so wie gewünscht.

    Beispiel extra für dich:

    So und wenn du noch mal behauptest ich könnte dir nicht helfen, weil ich es nicht weiß. Dann solltest du einfach mal überlegen ob man dir überhaupt helfen will. Denn wie gesagt du bist ein wenig arrogant und eingebildet. Schimpfst dich selber als Anfänger, aber denkst dein Code den du da geschrieben hast, wäre Goldwert.

    Ich lass dich einfach in den glauben. Und solltest du das von mir gepostete Beispiel nicht verstehen, dann tut es mir leid.

    In meinem Beispiel fehlt der Autoloader welchen du noch schreiben musst damit er die existens der Namespaces registriert. Ich würde dir ja gerne meinen Posten, aber ich denke der ist so unendlich viel wert das ich das nicht mit meinem Gewissen vereinbaren kann wenn der public ist /ironieoff

    In diesem Sinne

  • Ich würde das Problem an der Wurzel anfassen. Wieso ist die Klasse denn so groß? Vielleicht liegt da ja auch ein Designfehler vor. Ansonsten: Bei jedem guten Editor kann man Funktionen verkleinern, so dass nur der Funktionsheader zu sehen ist.

    [CENTER][/CENTER]

  • @ulli Ich ignorier jetzt mal gepflegt den großteil des unteren Abschnitts.

    Zitat

    Schimpfst dich selber als Anfänger, aber denkst dein Code den du da geschrieben hast, wäre Goldwert.


    Es geht nicht darum das der Code, sondern die Idee Goldwert sein könnte.

    Mein Problem habe ich wie geschrieben schon durch rumtesterei gelöst, aber für den neuen Ansatz bekommste nochn Thanks und dann kannste das Thema hoffentlich ma für dich abhacken.

    Achja und dein Ironieoff ist als würdest dun Witz erklären..

    [CENTER]ISYMFS[/CENTER]

  • Zitat von Delinquenz;320853

    Ich würde das Problem an der Wurzel anfassen. Wieso ist die Klasse denn so groß? Vielleicht liegt da ja auch ein Designfehler vor. Ansonsten: Bei jedem guten Editor kann man Funktionen verkleinern, so dass nur der Funktionsheader zu sehen ist.


    Exakt. Das vermutet ulle (wenn ich ihn richtig verstanden habe) und ich auch - ohne den Quelltext der Klasse zu sehen, können wir hierzu aber keine richtige Hilfe anbieten.

    Zitat

    Das ganze muss so ja nicht hochgeladen werden, wenn du eine bessere Lösung hast wär ich sehr froh.


    Eine bessere Lösung - wenn überhaupt nötig (600 Zeilen sind nicht zu viel ... Nach Oracles Style Guide für Code sind bis zu 2 000 Zeilen ok, viele Java Klassen größerer Projekte haben bis zu 5 000 Zeilen) - eben nur mit Quelltext nötig (da, wie Ulle und Delinquenz beschrieben haben, der dann im Design liegt).

  • Nochmal Assoult, es geht um deine Session Klasse nicht um das Projekt. Was soll an der Session Klasse goldwert sein?

    Das ist halt das was ich nicht verstehe. Und das mit dem Ironieoff ist so gewollt das es wie ein witz klingt, denn das was du hier veranstaltest kann man nicht anders bezeichnen......

    Wie gesagt hättest du einfach die Session Klasse hochgeladen, dann hätte man dir in einem Post helfen können. So sind es eben effektive 4 gute Posts und der Rest ist Spam (auch von mir).

    Hat der Ansatz den ich dir geschrieben habe etwas gebracht oder brauchst du noch ein krasseres Beispiel?

  • Zitat von Assoult;320854

    @ulli Ich ignorier jetzt mal gepflegt den großteil des unteren Abschnitts.

    Es geht nicht darum das der Code, sondern die Idee Goldwert sein könnte.

    Mein Problem habe ich wie geschrieben schon durch rumtesterei gelöst, aber für den neuen Ansatz bekommste nochn Thanks und dann kannste das Thema hoffentlich ma für dich abhacken.

    Achja und dein Ironieoff ist als würdest dun Witz erklären..

    Also die Idee von einer Session Klasse hatten aber schon andere
    https://www.google.de/search?q=php+session+class

  • Jetzt habt ihr alle mal ne Runde gemcored, aber das Thema war schon auf der letzten Seite abgehackt.

    [CENTER]ISYMFS[/CENTER]

Jetzt mitmachen!

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