Vor-und Nachteile der Verwendung einer Datei für ganze Webseite? [geschlossen]

StackOverflow https://stackoverflow.com/questions/121849

  •  02-07-2019
  •  | 
  •  

Frage

Ich bin nicht sicher, wie ich das ausdrücken soll, aber ich werde es versuchen.
Ich begann vor kurzem mein Portfolio Codierung in der objektorientierten PHP und ich frage mich, wenn es um Best Practices nach ist eine einzelne Seite zu verwenden, in denen der Inhalt ändert in Abhängigkeit von SQL-Daten und die $ _GET Variable?

Wenn ja / nein, warum?

Edit: Werfen Sie einen Blick auf meine nächsten Post, tiefer gehende Details

.
War es hilfreich?

Lösung

Sind Sie fragen über die Front Controller verwenden, wo eine einzelne Datei, die alle Ihre Anfragen dient? Oft wird dies mit einer index.php und mod_rewrite getan alle Anforderungen mit dem Rest der URL bekommen, um es als Parameter in der Abfragezeichenfolge angegeben werden.

http://www.onlamp.com /pub/a/php/2004/07/08/front_controller.html

Ich würde dazu neigen, dieses Muster zu empfehlen für Anwendungen verwendet werden, weil es Ihnen an einem einzigen Ort gibt Dinge wie Authentifizierung zu handhaben, und oft werden Sie die Dinge auf eine engere Ebene integrieren müssen, wo neue mit Klassen Funktionen, die registriert sind, mit der Steuerung über einen Mechanismus macht sehr viel Sinn.

Die Bedenken über die URLs andere erwähnt hat, sind nicht wirklich genau, weil es keine wirkliche Beziehung zwischen URL-Struktur und Dateistruktur ist, es sei denn, Sie alte Techniken der Erstellung von Webseiten verwenden. Ein gutes Stück von Apache-Funktionalität basiert auf dem Konzept basiert, die Datei / Verzeichnisstruktur und URL-Struktur sind verschiedene Konzepte (alias Modul, Rewrite-Modul, Content-Negotiation, so weiter und so fort)

Andere Tipps

  • Nicht skalierbar
  • Schwer zu verwalten Code
  • Parser hat alles analysieren
  • Perfect Beispiel-Code Geruch
  • Ein Fehler abstürzt Ihre gesamte Website

Wenn bedeuten Sie eine einzelne Zielseite (z index.php), die dann Session-Variablen usw. verwendet, um herauszufinden, was Code enthalten sein muss, dann ja, das ist eine häufig verwendete Technik.

Edit: und durch die oben Ich meine, was Daniel Papasian im Detail in seinem ausgezeichneten Beitrag erklärt

Wenn Sie alle Ihre HTML, SQL und PHP in einer einzigen Datei bedeuten platzieren, dann nicht aus den Gründen, wies darauf hin, von Gatekiller.

Die actaul Seite Datei enthalten sollte nur das, was über diese Seite von einem Standard „Seite“ auf Ihrer Website diffrent ist (zB der Seitentitel, Code der Index-Seite haben die neuesten Nachrichten zu erhalten, usw.). Everythin das ist (oder kann) in mehr als einem Ort verwendet werden, sollte auf externe PHP-Dateien verschoben werden, und enthalten. Beispiele hierfür sind:

  • Datenbank Infomationen (Passwort, Benutzername, usw.)
  • Kopfzeile / Fußzeile
  • Login-Code

Das macht den Code deutlich einfacher zu verwalten. Zum Beispiel, wenn Sie das Datenbank-Kennwort zu ändern, seine nur eine Datei, die aktualisiert werden muss, oder wenn Sie ein Banner in den Header hinzuzufügen entschieden, seine wieder nur eine Seite nicht alle Seiten, die geändert werden müssen.

Es macht auch neue Funktionen viel weniger Arbeit, zB eine neue Seite kann einfach hinzufügen:

<?php
require ('config.php')
require ('start.php')
require ('header.php')
//custom page stuff
require ('footer.php')
?>

oder das Hinzufügen von Auto-Login über Cookies, ist eine einfache Änderung der Anmeldung () -Funktion (Erstellung eines Cookies) und start.php (Überprüfung für das Cookie + Aufruf Anmeldung ()).

Sie können auch Einfach aufzunehmen, diese Dateien auf andere Projekte in der Zukunft übertragen.

Alles Gatekiller auch + Sie erwähnt können späte Bindung nicht nutzen.

  • Schwer zu verwalten Code

Wenn Sie die Versionskontrolle verwenden es wird viel schwieriger sein, alle Änderungen rückgängig zu machen, die auf eine einzige „Seite“ hätte geschehen können von Ihrer Website. Da würden Sie für etwas zu fusionieren haben zurück, die nach

haben könnten

Es ist nicht so suchmaschinenfreundlich, wenn Sie mod Rewrite verwenden

Ich neige dazu, mit dem meisten anderen Meinung zu sein - wenn Ihre Website ähnlich von einem benutzerdefinierten CMS oder etwas verwaltet wird, gibt es keinen Grund, nicht eine Seite zu verwenden.

Ich habe eine ähnliche Sache mit einem CMS ich eine Weile zurück schrieb. Alle Kunden hatten eine einzige default.asp-Seite, die in die Datenbank nach Thema, Inhalt abgefragt, Anlagen und Mitgliederberechtigungen. Um eine Änderung vorzunehmen, ich habe gerade die Änderung einmal, und kopiert sie auf meine anderen Kunden, wenn die Änderung es erforderlich ist.

Dies würde natürlich in den meisten Szenarien nicht. Wenn Sie eine Website, die eine Menge verschiedenen Dinge tut (mein cms nur bestimmte Funktionen wiederholt, während der Seite geladen), dann wirklich mehrere Seiten ist der einzige Weg zu gehen.

Für diejenigen, die interessiert sind, gibt es ein Framework, das genau dieses Modell verwendet. Ursprünglich für Coldfusion. Es gibt immer noch eine Gemeinschaft für diese Methodik, Version 5.5 wurde vor einem Jahr veröffentlicht über (Dezember 2007).

FuseBox Rahmen Website

Wikipedia-Eintrag

Diese Screendump und die folgende Erklärung könnten eine bessere Vorstellung von dem, was mein Code sieht aus wie zur Zeit.

File-Struktur

Ich verwende das gleiche Modell wie das, das ‚Internet Freund‘, Daniel Papasian und ein paar andere erwähnen; Front Controller.

Meine Index-Seite sieht wie folgt aus.

require_once 'config.php';
require_once 'class_lib/template.php';

$template = new template($config);
$template->dataQuery();
$template->pageCheck();
$template->titleAssembly();
$template->cssAssembly();
$template->metaAssembly();
$template->menuAssembly();
$template->content();
echo $template->publish();

Das Klassenkonstrukt öffnet die Haupt-Template-Datei und lädt sie in eine Variable, das jede Methode mit durch Ersetzen Tags mit generierten Code manipulieren kann. Hässliche URLs ist nicht wirklich ein Problem, da ich mod_rewrite verwenden es, um aufzuräumen.
Allerdings hat Papasian einen Punkt, würde diese Methode für Web-basierten Anwendungen und dergleichen mehr geeignet sein.

Ich entschuldige mich für meine Frage in erster Linie nicht sehr spezifisch zu sein.
Darüber hinaus großes ‚Danke‘ an alle, die ein paar Zeilen fallen gelassen zu helfen.

ich oft verwenden, um eine PHP-Datei ohne die Endung .php (dh Seite) und füge

<Files site>
ForceType application/x-httpd-php 
</Files>

auf die .htaccess, die Apache die Datei als PHP-Datei interpretieren macht.

Sie können Vars in die Datei innerhalb der URL analysieren: http: // www. yourdomain.com/site/var1/var2/var3

Mit

$var_array = explode("/",$_SERVER['REQUEST_URI']); 
$var1 = $var_array[1];
$var2 = $var_array[2];
$var3 = $var_array[3];

Vars zu erhalten. So können Sie eine einzelne Datei mit searchengingfriendlyurls ohne modrewrite verwenden können.

re: URL und Dateistruktur

umgewandelt ich einen Ort, an dem alle Inhalte in einer Datenbank war und mit dem Index? P = 434 Modell abgerufen. Es war die Datenbank kein Nutzen zu verwenden, und die Website für die Menschen war verwirrend, die Inhalte hinzuzufügen hatte, da sie Inhalte mit dem Browser zu bearbeiten hatten und Seiten waren nur Zahlen.

Ich zog den gesamten Inhalt aus und lege sie in separaten Dateien. Jeder hatte einen vernünftigen Namen und wurde in Ordnern abgelegt. Jede Datei sah so etwas wie folgt aus:

require('sitelib');
do_header('about', 'About Us');
// content here
do_footer();

Der Kunde war begeistert. Sie konnten einen beliebigen HTML-Editor verwenden, um zu gehen, finden Sie die richtige Datei und die Änderung vornehmen. Und sie waren in der Lage, neue Seiten zu machen. Alle zu sagen:. Manchmal ist es nützlich, die URL und Dateistrukturen Spiel zu haben,

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top