2010-04-27 13 views
6

Ich habe viele Funktionen, die ich aus dem Internet erstelle oder kopiere.Wo können Sie Hilfsfunktionen speichern?

Ich frage mich, ob ich sie in einer Datei speichern sollte, die ich nur in das Skript aufnehmen oder sollte ich jede Funktion als eine statische Methode in einer Klasse speichern.

z. Ich habe eine getCurrentFolder() und eine isFilePhp() -Funktion.

sollten sie in einer Datei gespeichert werden, da sie oder jeweils in einer Klasse sind:

Ordner :: getCurrent() File :: isPhp();

Wie geht es Ihnen?

Ich weiß, das ist ein bisschen ein „wie u wollen“ Frage, aber es würde einige Ratschläge/Best Practices

dank groß sein.

Antwort

3

Sie haben Recht, das ist höchst subjektive Angelegenheit, aber ich würde wahrscheinlich eine Mischung aus Ihren beiden Möglichkeiten verwenden.

Sie haben eine Klasse (sagen Helper), der die __call() hat (und/oder __callStatic(), wenn Sie PHP verwenden 5.3+) magic methods, wenn ein nicht definiert [statisch] Methode aufgerufen wird, es wird die jeweilige Helfer-Datei laden und führe die Hilfsfunktion aus. Bedenken Sie jedoch, dass das Einschließen von Dateien die Leistung verringert, aber ich glaube, dass der Nutzen, den Sie in Bezug auf die Dateiorganisation erzielen, bei weitem den kleinen Leistungseinbruch überwiegt.

Ein einfaches Beispiel:

class helper { 
    function __callStatic($m, $args) { 
     if (is_file('./helpers/' . $m . '.php')) { 
      include_once('./helpers/' . $m . '.php'); 
      return call_user_func_array($m, $args); 
     } 
    } 
} 

helper::isFilePhp(/*...*/); // ./helpers/isFilePhp.php 
helper::getCurrentFolder(/*...*/); // ./helpers/getCurrentFolder.php 

Sie können weiterhin diese Schnipsel optimieren und sogar verschiedene Arten von Helfer (Ordner, File) und so weiter haben, durch eine __call[Static]() magische Methode für jede Ihrer Klassen Zugabe und Umsetzung etwas Logik in der Ordner-/Dateistruktur Ihrer Hilfsdateien/Funktionen.

Verwandte Themen