2010-01-21 9 views
9

Wenn ich eine große Anzahl von Funktionen hätte, wäre es besser, sie alle in einer großen Datei zu behalten, oder wäre es besser, sie in mehrere Dateien von verwandten Funktionen zu trennen. Mit besser ich meine effizienter sowohl für die Wartbarkeit und für die Server-Verarbeitung der Anfrage.Effizienz für die Aufnahme von Dateien von Funktionen (in PHP)

Zum Beispiel habe ich jetzt alle meine Dateien in einer Datei mit dem Namen include.php. Aber wäre es klüger, eine Include-Datei mit Includes wie:

Antwort

17

zu haben Definitiv trennen Sie sie, aus Gründen der Wartungsfreundlichkeit. Ich bezweifle, dass die Leistung überhaupt leiden wird, aber selbst wenn es so ist (nur ein kleines bisschen), ist es besser, einen wartbaren, lesbaren Code zu schreiben.

+2

+1 für propagierende Wartbarkeit und Lesbarkeit in PHP. – whiskeysierra

+0

-1, Alle Funktionen in einer Datei zu haben bedeutet nicht, dass es nicht erreichbar und nicht lesbar ist. Es hängt davon ab, wie ** du es tust. In der Tat ist es immer noch möglich, auch mit mehreren Includes nicht erreichbar und unlesbar zu sein. – Pacerier

2

In Bezug auf Wartbarkeit ist es normalerweise besser, Ihre Funktionen in verwandte Gruppen zu trennen. (wie oben gezeigt, user.php wären nur die benutzerbezogenen Funktionen).

Sie sollten nur eine Datei mit all diesen Includes haben, wenn Sie wissen, dass Sie jedes Mal, wenn Sie eine Datei hinzufügen müssen, alle enthaltenen Dateien benötigen. Sonst vereitelt es den Zweck, diese "Catch-All" -Datei zu haben.

2

Nach meiner Erfahrung enthält mehrere enthält und/oder erfordert im Allgemeinen Arent Göping, Sie zu viel zurück zu setzen, wenn Sie ein paar Dutzend oder so Dateien für Funktionsbibliotheken sprechen. Vor allem, wenn es Ihnen gelingt, die Anweisung für eine bestimmte Datei nur einmal während eines Anforderungslebenszyklus aufzurufen.

Wo Leistung beginnt zu schlagen ist, wenn Sie in OOP oder eine hochkomplexe funktionale/prozedurale Architektur kommen, wo es Hunderte von verschiedenen Klassen/Dateien gibt. Aber im Allgemeinen haben Sie zu diesem Zeitpunkt hoffentlich eine Art Minderung durch Caching/Kompilierung vorgenommen.

+0

Eigentlich wird es sich langsam anfühlen, wenn Sie keinen Beschleuniger haben. Disk-Lesevorgänge sind immer noch teuer. – Pacerier

3

Sie möchten sicher sein, dass Sie einen PHP-Cache wie XCache oder APC verwenden. Ihre PHP-Dateien sollten dann alle im Speicher sein und Sie sollten sich keine Sorgen machen, dass Ihre Dateien überhaupt auf die Festplatte gelangen.

Ich würde es auf jeden Fall leichter finden, wenn Sie ähnliche Funktionen/Klassen in ihre eigenen Dateien aufteilen würden.

+4

XCache und APC prüfen, sofern nicht ausdrücklich anders konfiguriert, nach der Änderungszeit der Datei, um festzustellen, ob sie eine neue Version der Datei verarbeiten soll. Dies beeinträchtigt die Leistung ziemlich, wenn eine große Anzahl von Includes vorhanden ist. Auf einem Produktionsserver, auf dem der Code festgelegt ist, sollten Sie dies wirklich ausschalten. Sie erhalten einen kleinen Leistungsschub, wenn Sie den Cache beim Hochladen einer neuen Version des Codes manuell leeren müssen. – Mike

0

Ich habe eine Liste von Includes in einer zentralen .config-Datei.

Für alle OOP-Klassen, obwohl ich Autoload verwenden -> Ich weiß, es ist etwas langsamer, aber es spart sparen, sie zu integrieren, wie ich eine neue Klasse. Und sie werden nur nach Bedarf geladen.

Nebenbei, Include ist schneller als include_once, da es nicht überprüfen muss, ob die Datei bereits enthalten ist.

Verwandte Themen