Bislang habe ich etwa 3 PHP-Includes auf meiner Website.
<?php include("includes/header.html"); ?>
Gibt es einen Grund, warum ich nicht eine ganze Menge davon hinzufügen sollte?
Bislang habe ich etwa 3 PHP-Includes auf meiner Website.
<?php include("includes/header.html"); ?>
Gibt es einen Grund, warum ich nicht eine ganze Menge davon hinzufügen sollte?
Nicht wirklich. Sie werden recht häufig und großzügig verwendet - allerdings meistens, um andere PHP-Dateien einzubinden. Diese PHP-Dateien schließen dann oft andere ein, so dass es wirklich keine Bedenken gibt.
Übrigens, wenn Sie diese Technik verwenden, um andere PHP-Dateien einzubinden (z.B. Bibliotheksdateien mit Funktionen, die Sie verwenden), ist es eine gute Idee, die require_once
(es gibt auch include_once
als auch einfach require
); require
verursacht einen Fehler, wenn sein Argument nicht gefunden wird, und versucht nicht, die Seite weiter zu rendern. require_once
(und include_once
) wird dieselbe Datei nicht mehr als einmal einbinden, auch wenn Sie die require_once
(oder include_once
) aus verschiedenen Orten.
Ich vermute, dass Sie etwas Ähnliches tun:
<?php
include("session_and_headers.php");
include("top_nav.html")
include("right_sidebar.html");
?>
... actual content generation code ...
<?php
include("footer.html");
include("js_loader.php");
?>
Bei einfachen statischen Websites oder in Situationen, in denen die Benutzer nur mehrere unterschiedliche Ansichten haben, ist daran nichts auszusetzen.
Aber was passiert, wenn Sie eine etwas andere Seitenleiste nur auf bestimmten Seiten verwenden möchten? Wo platzieren Sie die Logik, um das zu bestimmen, damit es für die nächste Person, die Ihren Code erbt, offensichtlich ist?
Wenn Sie in diese Art von Komplexität zu bekommen, empfehle ich mit dem MVC-Ansatz zu gehen (auch wenn Sie meist die Ansicht/Controller-Aspekte davon verwenden).
Wenn Sie eine nn-Seiten-Site in PHP erstellen, die nur gemeinsame Elemente enthalten muss, dann gibt es keinen Grund, die Dateien nicht einfach nach Bedarf einzubinden.
Betrachten Sie das nicht so sehr als ist es schlecht für PHP betrachten Sie es eher als ist es schwer zu pflegen ?
Es gibt einen Vorteil, objektorientierten Code zu schreiben und auf PHP 5 zu aktualisieren: Sie können eine "Tonne von Includes" vermeiden, indem Sie Klasse Autoloading .
Der einzige Nachteil ist die Leistung - jedes Include kostet Sie Systemaufrufe. Mit 3 oder 10 ist das alles eine Kleinigkeit, es sei denn, Ihr Traffic ist riesig, aber etwa 100 kann ein Problem sein. Die Lösung ist, einen Bytecode-Cache (wie apc) zu verwenden und die Variable realpath_cache_size auf einen höheren Wert zu setzen (der Standardwert reicht für etwa 100-200 Dateien, abhängig von der Pfadlänge). Abgesehen davon ist das kein großes Problem.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.