Meri19 Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Hallo, ich habe ein kleines PHP-Programm geschrieben, welches mehrere Seiten hat. Jetzt muss ich an sehr vielen Stellen den gleichen Code-ausschnitt aufrufen. Gibt es dazu eine möglichkeit diesen in eine Externe Datei(villeicht sogar in eine .ini Datei) auszulagern und an den Stellen, wo ich es benötige einfach diesen Code-ausschnitt aufrufe? Damit es villeicht besser verständlich ist, es handelt sich um folgende Überprüfung, welche ich ca. 20 mal aufrufe in meinem kompletten PHP-Programm. while(file_exists("/Temp/Dateiname")) { sleep(1); }[/PHP] In Java kann man dies mit Methoden lösen, welche man von den verschiedenen Klassen aus ausrufen kann, gibt es so etwas ähnliches in PHP auch? Ich hoffe es kann mir jemand helfen, denn an dieser stelle bin ich ratlos. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Gibts auch unter PHP. Siehe hier. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Ja, verwende Funktionen oder include (bzw. require) gar eigene php-scripte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Überdenke einmal Dein Design, denn einfach irgendwo wild Daten zu includieren ist sicherlich nicht sinnvoll Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Manchmal kanns aber sinnvoll sein (natürlich nicht unkoordiniert). Dafür kann dann auch die Funktion require_once() nützlich sein. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Manchmal kanns aber sinnvoll sein (natürlich nicht unkoordiniert). Nein man kann mit entsprechenden Paradigmen alle includes zu Beginn des Scriptes machen und somit das ganze übersichtlich gestalten. Einfach im Code ein include zu setzen braucht man nicht. Ich empfehle OOP Design mit Namespaces Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 21. März 2012 Teilen Geschrieben 21. März 2012 Nein man kann mit entsprechenden Paradigmen alle includes zu Beginn des Scriptes machen und somit das ganze übersichtlich gestalten. Einfach im Code ein include zu setzen braucht man nicht. Ich empfehle OOP Design mit Namespaces Ich glaube mal, das hängt von der jeweiligen Anwendung ab. Includes an einer Stelle, wo sie benötigt werden, können dort sinnvoll sein und den Overhead in der Datenzuweisung und Übergabe deutlich verringern. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 22. März 2012 Teilen Geschrieben 22. März 2012 Nein man kann mit entsprechenden Paradigmen alle includes zu Beginn des Scriptes machen und somit das ganze übersichtlich gestalten. Einfach im Code ein include zu setzen braucht man nicht. Ich empfehle OOP Design mit NamespacesIch schrieb schrieb extra was von "nicht unkordiniert", was für mich dann bedeutet, dass man includes zu Beginn macht, WENN MÖGLICH. Es gibt in meinen Augen jedoch durchaus manchmal Fälle, da kann es sinnvoll sein, erst später eine Datei zu includen (z.B. ein include/require abhängig von einer Eingabe, das nur sehr selten genutzt wird, was jedoch ziemlich gross ist). Oder ein require_once(), falls eine Datei noch nicht includet wurde bis dahin. Habe ich schon in diversen PHP-Programmen gesehen. Manchmal hätte man es besser lösen können und manchmal war es so auch meiner Meinung nach am besten gelöst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 22. März 2012 Teilen Geschrieben 22. März 2012 (bearbeitet) Es gibt in meinen Augen jedoch durchaus manchmal Fälle, da kann es sinnvoll sein, erst später eine Datei zu includen (z.B. ein include/require abhängig von einer Eingabe, das nur sehr selten genutzt wird, was jedoch ziemlich gross ist). Oder ein require_once(), falls eine Datei noch nicht includet wurde bis dahin. dafür gibt es PHP: Autoloading - Manual um das ganze definiert zu machen Manchmal hätte man es besser lösen können und manchmal war es so auch meiner Meinung nach am besten gelöst. Ein Include / Require irgendwo im Quellcode wird immer im lokalen Context (Scope) aufgerufen, wenn in dem includierten Code keine funktionale oder OOP Kapselung existiert, dann können ohne Probleme Variablen etc überschrieben werden, durch die nicht-typisierte Typenbindung in PHP können dadurch sehr unschöne Sideeffects entstehen, die den Code und vor allem die Fehlersuche extrem unübersichtlich machen. Wenn man eh eine funktionale oder OOP Kapselung hat, dann kann ich das includieren auch am Anfang der Datei machen, da ich die Routinen eh über die entsprechenden Namen aufrufe und wenn ich das flexibel halten will, dann definiere ich einmal das Autoloading, wobei ich da auch dann ganz sauber mit Hilfe von Exception Ladefehler der Dateien abfangen kann. Wo ist das Argument um irgendwo mitten im Code ein include zu setzen? Es geht nicht darum, dass man es machen kann, sondern darum, den Code ordentlich zu strukturieren, so dass auch auch wartbar bleibt. Außerdem sehe ich keinen Grund, dass man die includes Mitten im Code machen muss, sie können alle zu Beginn an definierter Stelle gemacht werden oder eben dynamisch via Autoload, aber diese Funktion kann ich ebenfalls in eine eigene Datei auslagern (da sie ja auch im Root Namespace liegen muss) und dann setze ich den include am Anfang meiner Datei. Für mich ist ein include irgendwo im Code definitiv schlechter Stil Bearbeitet 22. März 2012 von flashpixx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crash2001 Geschrieben 22. März 2012 Teilen Geschrieben 22. März 2012 Na gut, das Autoloading kannte ich jetzt noch nicht. Habe mich aber auch seit bestimmt 5 Jahren nciht mehr wirklich damit beschäftigt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.